зеркало из https://github.com/mozilla/pjs.git
161 строка
4.7 KiB
C
161 строка
4.7 KiB
C
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||
|
*
|
||
|
* The contents of this file are subject to the Netscape Public License
|
||
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
||
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
||
|
* http://www.mozilla.org/NPL/
|
||
|
*
|
||
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||
|
* for the specific language governing rights and limitations under the
|
||
|
* NPL.
|
||
|
*
|
||
|
* The Initial Developer of this code under the NPL is Netscape
|
||
|
* Communications Corporation. Portions created by Netscape are
|
||
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||
|
* Reserved.
|
||
|
*/
|
||
|
/*
|
||
|
new_manage.c --- defines a subclass of XmManager
|
||
|
Created: Eric Bina <ebina@netscape.com>, 17-Aug-94.
|
||
|
|
||
|
Excerts from the X Toolkit Intrinsics Programming Manual - O'Reilly:
|
||
|
|
||
|
"Writing a general-purpose composite widget is not a trivial task
|
||
|
and should only be done when other options fail."
|
||
|
"A truly general-purpose composite widget is a large, complex piece
|
||
|
of software. You should leave this programming to the widget writers
|
||
|
who write commercial widget sets, and concentrate on things that are
|
||
|
more important in your application."
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include "mozilla.h"
|
||
|
#include "new_manage.h"
|
||
|
#include "new_manageP.h"
|
||
|
|
||
|
static XtGeometryResult
|
||
|
GeometryManager(Widget w, XtWidgetGeometry *request, XtWidgetGeometry *reply);
|
||
|
|
||
|
static void
|
||
|
ChangeManaged(Widget w);
|
||
|
|
||
|
|
||
|
NewManageClassRec newManageClassRec =
|
||
|
{
|
||
|
{
|
||
|
/* core_class fields */
|
||
|
/* superclass */ (WidgetClass) &xmManagerClassRec,
|
||
|
/* class_name */ "NewManage",
|
||
|
/* widget_size */ sizeof(NewManageRec),
|
||
|
/* class_initialize */ NULL,
|
||
|
/* class_partinit */ NULL /* ClassPartInitialize */,
|
||
|
/* class_inited */ FALSE,
|
||
|
/* initialize */ NULL /* Initialize */,
|
||
|
/* Init hook */ NULL,
|
||
|
/* realize */ XtInheritRealize /* Realize */,
|
||
|
/* actions */ NULL,
|
||
|
/* num_actions */ 0,
|
||
|
/* resources */ NULL /* resources */,
|
||
|
/* num_resources */ 0 /* XtNumber(resources) */,
|
||
|
/* xrm_class */ NULLQUARK,
|
||
|
/* compress_motion */ TRUE,
|
||
|
/* compress_exposure */ TRUE,
|
||
|
/* compress_enterleave*/ TRUE,
|
||
|
/* visible_interest */ FALSE,
|
||
|
/* destroy */ NULL,
|
||
|
/* resize */ NULL,
|
||
|
/* expose */ XtInheritExpose /* (XtExposeProc) Redisplay */,
|
||
|
/* set_values */ NULL /* (XtSetValuesFunc )SetValues */,
|
||
|
/* set values hook */ NULL,
|
||
|
/* set values almost */ XtInheritSetValuesAlmost,
|
||
|
/* get values hook */ NULL,
|
||
|
/* accept_focus */ NULL,
|
||
|
/* Version */ XtVersion,
|
||
|
/* PRIVATE cb list */ NULL,
|
||
|
/* tm_table */ XtInheritTranslations,
|
||
|
/* query_geometry */ NULL /* QueryProc */,
|
||
|
/* display_accelerator*/ NULL,
|
||
|
/* extension */ NULL,
|
||
|
},
|
||
|
{
|
||
|
/* composite_class fields */
|
||
|
/* geometry_manager */ GeometryManager /*(XtGeometryHandler )GeometryManager*/,
|
||
|
/* change_managed */ ChangeManaged /*(XtWidgetProc) ChangeManaged*/,
|
||
|
/* insert_child */ XtInheritInsertChild /*(XtArgsProc) InsertChild*/,
|
||
|
/* delete_child */ XtInheritDeleteChild,
|
||
|
/* Extension */ NULL,
|
||
|
},{
|
||
|
/* Constraint class Init */
|
||
|
NULL,
|
||
|
0,
|
||
|
0,
|
||
|
NULL,
|
||
|
NULL,
|
||
|
NULL,
|
||
|
NULL
|
||
|
|
||
|
},
|
||
|
/* Manager Class */
|
||
|
{
|
||
|
XmInheritTranslations/*ScrolledWindowXlations*/, /* translations */
|
||
|
NULL /*get_resources*/, /* get resources */
|
||
|
0 /*XtNumber(get_resources)*/, /* num get_resources */
|
||
|
NULL, /* get_cont_resources */
|
||
|
0, /* num_get_cont_resources */
|
||
|
XmInheritParentProcess, /* parent_process */
|
||
|
NULL, /* extension */
|
||
|
},
|
||
|
|
||
|
{
|
||
|
/* NewManage class - none */
|
||
|
/* mumble */ 0
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
WidgetClass newManageClass = (WidgetClass)&newManageClassRec;
|
||
|
|
||
|
|
||
|
static XtGeometryResult
|
||
|
GeometryManager(Widget w, XtWidgetGeometry *request, XtWidgetGeometry *reply)
|
||
|
{
|
||
|
if (request->request_mode & XtCWQueryOnly)
|
||
|
{
|
||
|
return(XtGeometryYes);
|
||
|
}
|
||
|
|
||
|
if (request->request_mode & CWX)
|
||
|
{
|
||
|
XtX(w) = request->x;
|
||
|
}
|
||
|
if (request->request_mode & CWY)
|
||
|
{
|
||
|
XtY(w) = request->y;
|
||
|
}
|
||
|
if (request->request_mode & CWWidth)
|
||
|
{
|
||
|
XtWidth(w) = request->width;
|
||
|
}
|
||
|
if (request->request_mode & CWHeight)
|
||
|
{
|
||
|
XtHeight(w) = request->height;
|
||
|
}
|
||
|
if (request->request_mode & CWBorderWidth)
|
||
|
{
|
||
|
XtBorderWidth(w) = request->border_width;
|
||
|
}
|
||
|
|
||
|
return(XtGeometryYes);
|
||
|
}
|
||
|
|
||
|
|
||
|
static void
|
||
|
ChangeManaged(Widget w)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|