From 05bb69e0dc76d42f77f1c96b6176781a96471c54 Mon Sep 17 00:00:00 2001 From: "ramiro%netscape.com" Date: Fri, 31 Jul 1998 10:46:34 +0000 Subject: [PATCH] Add caption files. --- cmd/xfe/XfeWidgets/Makefile | 1 + cmd/xfe/XfeWidgets/Xfe/StringDefs.h | 2 + cmd/xfe/XfeWidgets/XfeCaption/Caption.c | 994 ++++++++++++++++++ cmd/xfe/XfeWidgets/XfeCaption/Caption.h | 122 +++ cmd/xfe/XfeWidgets/XfeCaption/CaptionP.h | 138 +++ .../CaptionStringDefs.h} | 0 cmd/xfe/XfeWidgets/XfeCaption/Makefile | 55 + cmd/xfe/XfeWidgets/XfeCaption/TextCaption.c | 359 +++++++ cmd/xfe/XfeWidgets/XfeCaption/TextCaption.h | 65 ++ cmd/xfe/XfeWidgets/XfeCaption/TextCaptionP.h | 104 ++ cmd/xfe/XfeWidgets/XfeComboBox/ComboBox.c | 1 + .../XfeComboBox/ComboBoxStringDefs.h | 79 -- cmd/xfe/XfeWidgets/XfeComboBox/Makefile | 55 + cmd/xfe/XfeWidgets/tests/Makefile | 1 + cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.c | 0 cmd/xfe/XfeWidgets/tests/Xfe/Makefile | 1 - .../tests/XfeCaption/CaptionTest.ad | 64 ++ .../XfeWidgets/tests/XfeCaption/CaptionTest.c | 51 + cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile | 44 + .../tests/XfeCaption/TextCaptionTest.ad | 80 ++ .../tests/XfeCaption/TextCaptionTest.c | 66 ++ 21 files changed, 2202 insertions(+), 80 deletions(-) create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/Caption.c create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/Caption.h create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/CaptionP.h rename cmd/xfe/XfeWidgets/{tests/Xfe/ComboBoxTest.ad => XfeCaption/CaptionStringDefs.h} (100%) create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/Makefile create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/TextCaption.c create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/TextCaption.h create mode 100644 cmd/xfe/XfeWidgets/XfeCaption/TextCaptionP.h create mode 100644 cmd/xfe/XfeWidgets/XfeComboBox/Makefile delete mode 100644 cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.c create mode 100644 cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.ad create mode 100644 cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.c create mode 100644 cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile create mode 100644 cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.ad create mode 100644 cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.c diff --git a/cmd/xfe/XfeWidgets/Makefile b/cmd/xfe/XfeWidgets/Makefile index 29c4b487208..60524207c0f 100644 --- a/cmd/xfe/XfeWidgets/Makefile +++ b/cmd/xfe/XfeWidgets/Makefile @@ -35,6 +35,7 @@ endif ifdef eXFE_WIDGETS_BUILD_UNUSED UNUSED_DIRS = \ + XfeCaption \ XfeComboBox \ $(NULL) endif diff --git a/cmd/xfe/XfeWidgets/Xfe/StringDefs.h b/cmd/xfe/XfeWidgets/Xfe/StringDefs.h index 94da748ece4..179984e9cc6 100644 --- a/cmd/xfe/XfeWidgets/Xfe/StringDefs.h +++ b/cmd/xfe/XfeWidgets/Xfe/StringDefs.h @@ -271,6 +271,7 @@ #define XmNtabOffset "TabOffset" #define XmNtaskBar "taskBar" #define XmNtaskBarDocked "taskBarDocked" +#define XmNtitleFontList "titleFontList" #define XmNtoggleBehavior "toggleBehavior" #define XmNtoolBar "toolBar" #define XmNtoolBarPosition "toolBarPosition" @@ -450,6 +451,7 @@ #define XmCSubMenuLocation "SubMenuLocation" #define XmCSwapThreshold "SwapThreshold" #define XmCTaskBarDocked "TaskBarDocked" +#define XmCTitleFontList "TitleFontList" #define XmCToggleBehavior "ToggleBehavior" #define XmCToolBarPosition "ToolBarPosition" #define XmCToolBarSelectionPolicy "ToolBarSelectionPolicy" diff --git a/cmd/xfe/XfeWidgets/XfeCaption/Caption.c b/cmd/xfe/XfeWidgets/XfeCaption/Caption.c new file mode 100644 index 00000000000..c79e3320372 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/Caption.c @@ -0,0 +1,994 @@ + /* -*- Mode: C; tab-width: 4; 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. + */ + + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeCaption widget source. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#include +#include +#include + +#define MESSAGE1 "Widget is not an XfeCaption." +#define MESSAGE2 "XmNtitleDirection is not XmSTRING_DIRECTION_L_TO_R or XmSTRING_DIRECTION_R_TO_L." + +#define TITLE_NAME "CaptionTitle" +#define DEFAULT_SUB_TITLE_NAME "CaptionSubTitle" + +#define DEFAULT_MAX_CHILD_WIDTH 65535 +#define DEFAULT_MAX_CHILD_HEIGHT 65535 + +/*----------------------------------------------------------------------*/ +/* */ +/* Core class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void ClassInitialize (void); +static void ClassPartInit (WidgetClass); +static void Initialize (Widget,Widget,ArgList,Cardinal *); +static void Destroy (Widget); +static Boolean SetValues (Widget,Widget,Widget,ArgList,Cardinal *); +static void GetValuesHook (Widget,ArgList,Cardinal *); + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeManager class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void PreferredGeometry (Widget,Dimension *,Dimension *); +static Boolean AcceptChild (Widget); +static Boolean InsertChild (Widget); +static Boolean DeleteChild (Widget); +static void ChangeManaged (Widget); +static void PrepareComponents (Widget,int); +static void LayoutComponents (Widget); +static void DrawComponents (Widget,XEvent *,Region,XRectangle *); + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption action procedures */ +/* */ +/*----------------------------------------------------------------------*/ +static void Activate (Widget,XEvent *,char **,Cardinal *); + +/*----------------------------------------------------------------------*/ +/* */ +/* Title functions */ +/* */ +/*----------------------------------------------------------------------*/ +static Widget TitleCreate (Widget); + +/*----------------------------------------------------------------------*/ +/* */ +/* Title callbacks */ +/* */ +/*----------------------------------------------------------------------*/ +static void TitleActivateCB (Widget,XtPointer,XtPointer); + +/*----------------------------------------------------------------------*/ +/* */ +/* Layout functions */ +/* */ +/*----------------------------------------------------------------------*/ +static void LayoutChildOnBottom (Widget); +static void LayoutChildOnLeft (Widget); +static void LayoutChildOnRight (Widget); +static void LayoutChildOnTop (Widget); +static void LayoutTitleOnly (Widget); +static void LayoutChildOnly (Widget); + +/*----------------------------------------------------------------------*/ +/* */ +/* RepType registration functions */ +/* */ +/*----------------------------------------------------------------------*/ +static void RegisterCaptionLayout (void); +static void RegisterCaptionHorizontalAlignment (void); +static void RegisterCaptionVerticalAlignment (void); + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption resources */ +/* */ +/*----------------------------------------------------------------------*/ +static XtResource resources[] = +{ + /* Layout resources */ + { + XmNcaptionLayout, + XmCCaptionLayout, + XmRCaptionLayout, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . caption_layout), + XmRImmediate, + (XtPointer) XmCAPTION_CHILD_ON_RIGHT + }, + { + XmNspacing, + XmCSpacing, + XmRHorizontalDimension, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . spacing), + XmRImmediate, + (XtPointer) 2 + }, + + /* Title resources */ + { + XmNtitle, + XmCReadOnly, + XmRWidget, + sizeof(Widget), + XtOffsetOf(XfeCaptionRec , xfe_caption . title), + XmRImmediate, + (XtPointer) NULL + }, + { + XmNtitleHorizontalAlignment, + XmCCaptionHorizontalAlignment, + XmRCaptionHorizontalAlignment, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . title_hor_alignment), + XmRImmediate, + (XtPointer) XmCAPTION_HORIZONTAL_ALIGNMENT_LEFT + }, + { + XmNtitleVerticalAlignment, + XmCCaptionVerticalAlignment, + XmRCaptionVerticalAlignment, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . title_ver_alignment), + XmRImmediate, + (XtPointer) XmCAPTION_VERTICAL_ALIGNMENT_CENTER + }, + { + XmNtitleDirection, + XmCTitleDirection, + XmRStringDirection, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . title_direction), + XmRImmediate, + (XtPointer) XmSTRING_DIRECTION_L_TO_R + }, + { + XmNtitleFontList, + XmCTitleFontList, + XmRFontList, + sizeof(XmFontList), + XtOffsetOf(XfeCaptionRec , xfe_caption . title_font_list), + XmRCallProc, + (XtPointer) _XfeCallProcDefaultLabelFontList + }, + { + XmNtitleString, + XmCTitleString, + XmRXmString, + sizeof(XmString), + XtOffsetOf(XfeCaptionRec , xfe_caption . title_string), + XmRImmediate, + (XtPointer) NULL + }, + + /* Child resources */ + { + XmNchild, + XmCReadOnly, + XmRWidget, + sizeof(Widget), + XtOffsetOf(XfeCaptionRec , xfe_caption . child), + XmRImmediate, + (XtPointer) NULL + }, + { + XmNchildHorizontalAlignment, + XmCCaptionHorizontalAlignment, + XmRCaptionHorizontalAlignment, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . child_hor_alignment), + XmRImmediate, + (XtPointer) XmCAPTION_HORIZONTAL_ALIGNMENT_LEFT + }, + { + XmNchildVerticalAlignment, + XmCCaptionVerticalAlignment, + XmRCaptionVerticalAlignment, + sizeof(unsigned char), + XtOffsetOf(XfeCaptionRec , xfe_caption . child_ver_alignment), + XmRImmediate, + (XtPointer) XmCAPTION_VERTICAL_ALIGNMENT_CENTER + }, + { + XmNchildResize, + XmCChildResize, + XmRBoolean, + sizeof(Boolean), + XtOffsetOf(XfeCaptionRec , xfe_caption . child_resize), + XmRImmediate, + (XtPointer) False + }, + + /* Dimension resources */ + { + XmNmaxChildHeight, + XmCMaxChildHeight, + XmRVerticalDimension, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . max_child_height), + XmRImmediate, + (XtPointer) DEFAULT_MAX_CHILD_HEIGHT + }, + { + XmNmaxChildWidth, + XmCMaxChildWidth, + XmRHorizontalDimension, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . max_child_width), + XmRImmediate, + (XtPointer) DEFAULT_MAX_CHILD_WIDTH + }, + +}; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption synthetic resources */ +/* */ +/*----------------------------------------------------------------------*/ +static XmSyntheticResource synthetic_resources[] = +{ + { + XmNmaxChildHeight, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . max_child_height), + _XmFromVerticalPixels, + _XmToVerticalPixels + }, + { + XmNmaxChildWidth, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . max_child_width), + _XmFromHorizontalPixels, + _XmToHorizontalPixels + }, + { + XmNspacing, + sizeof(Dimension), + XtOffsetOf(XfeCaptionRec , xfe_caption . spacing), + _XmFromHorizontalPixels, + _XmToHorizontalPixels + }, +}; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption extra translations */ +/* */ +/*----------------------------------------------------------------------*/ +/* extern */ char _XfeCaptionExtraTranslations[] ="\ +: Activate()\n\ +: Activate()"; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption actions */ +/* */ +/*----------------------------------------------------------------------*/ +static XtActionsRec actions[] = +{ + { "Activate", Activate }, +}; + +/*----------------------------------------------------------------------*/ +/* */ +/* Widget Class Record Initialization */ +/* */ +/*----------------------------------------------------------------------*/ +_XFE_WIDGET_CLASS_RECORD(caption,Caption) = +{ + { + (WidgetClass) &xfeManagerClassRec, /* superclass */ + "XfeCaption", /* class_name */ + sizeof(XfeCaptionRec), /* widget_size */ + ClassInitialize, /* class_initialize */ + ClassPartInit, /* class_part_initialize*/ + FALSE, /* class_inited */ + Initialize, /* initialize */ + NULL, /* initialize_hook */ + XtInheritRealize, /* realize */ + actions, /* actions */ + XtNumber(actions), /* num_actions */ + resources, /* resources */ + XtNumber(resources), /* num_resources */ + NULLQUARK, /* xrm_class */ + TRUE, /* compress_motion */ + XtExposeCompressMaximal, /* compress_exposure */ + TRUE, /* compress_enterleave */ + FALSE, /* visible_interest */ + Destroy, /* destroy */ + XtInheritResize, /* resize */ + XtInheritExpose, /* expose */ + SetValues, /* set_values */ + NULL, /* set_values_hook */ + XtInheritSetValuesAlmost, /* set_values_almost */ + GetValuesHook, /* get_values_hook */ + NULL, /* access_focus */ + XtVersion, /* version */ + NULL, /* callback_private */ + XtInheritTranslations, /* tm_table */ + XtInheritQueryGeometry, /* query_geometry */ + XtInheritDisplayAccelerator, /* display accelerator */ + NULL, /* extension */ + }, + + /* Composite Part */ + { + XtInheritGeometryManager, /* geometry_manager */ + XtInheritChangeManaged, /* change_managed */ + XtInheritInsertChild, /* insert_child */ + XtInheritDeleteChild, /* delete_child */ + NULL /* extension */ + }, + + /* Constraint Part */ + { + NULL, /* syn resources */ + 0, /* num syn_resources */ + sizeof(XfeManagerConstraintRec), /* constraint size */ + NULL, /* init proc */ + NULL, /* destroy proc */ + NULL, /* set values proc */ + NULL, /* extension */ + }, + + /* XmManager Part */ + { + XtInheritTranslations, /* tm_table */ + synthetic_resources, /* syn resources */ + XtNumber(synthetic_resources), /* num syn_resources */ + NULL, /* syn_cont_resources */ + 0, /* num_syn_cont_resource*/ + XmInheritParentProcess, /* parent_process */ + NULL, /* extension */ + }, + + /* XfeManager Part */ + { + XfeInheritBitGravity, /* bit_gravity */ + PreferredGeometry, /* preferred_geometry */ + XfeInheritMinimumGeometry, /* minimum_geometry */ + XfeInheritUpdateRect, /* update_rect */ + AcceptChild, /* accept_child */ + InsertChild, /* insert_child */ + DeleteChild, /* delete_child */ + ChangeManaged, /* change_managed */ + PrepareComponents, /* prepare_components */ + LayoutComponents, /* layout_components */ + NULL, /* layout_children */ + NULL, /* draw_background */ + XfeInheritDrawShadow, /* draw_shadow */ + DrawComponents, /* draw_components */ + False, /* count_layable_children*/ + NULL, /* child_is_layable */ + NULL, /* extension */ + }, + + /* XfeCaption Part */ + { + NULL, /* activate */ + NULL, /* extension */ + }, +}; + +/*----------------------------------------------------------------------*/ +/* */ +/* xfeCaptionWidgetClass declaration. */ +/* */ +/*----------------------------------------------------------------------*/ +_XFE_WIDGET_CLASS(caption,Caption); + +/*----------------------------------------------------------------------*/ +/* */ +/* Core Class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void +ClassInitialize() +{ + /* Register XfeCaption Representation Types */ + RegisterCaptionLayout(); + RegisterCaptionHorizontalAlignment(); + RegisterCaptionVerticalAlignment(); +} +/*----------------------------------------------------------------------*/ +static void +ClassPartInit(WidgetClass wc) +{ + XfeCaptionWidgetClass cc = (XfeCaptionWidgetClass) wc; + XfeCaptionWidgetClass sc = (XfeCaptionWidgetClass) wc->core_class.superclass; + + _XfeResolve(cc,sc,xfe_caption_class,activate,XfeInheritCaptionActivate); +} +/*----------------------------------------------------------------------*/ +static void +Initialize(Widget rw,Widget nw,ArgList args,Cardinal *nargs) +{ + XfeCaptionPart * pp = _XfeCaptionPart(nw); + + /* Create private components */ + pp->title = TitleCreate(nw); + + /* Initialize private members */ + + /* Add extra caption translations */ + XfeOverrideTranslations(nw,_XfeCaptionExtraTranslations); + + /* Finish of initialization */ + _XfeManagerChainInitialize(rw,nw,xfeCaptionWidgetClass); +} +/*----------------------------------------------------------------------*/ +static void +Destroy(Widget w) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ +} +/*----------------------------------------------------------------------*/ +static Boolean +SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs) +{ +/* XfeCaptionPart * np = _XfeCaptionPart(nw); */ +/* XfeCaptionPart * op = _XfeCaptionPart(ow); */ + + /* shadow_thickness */ + if (_XfemShadowThickness(nw) != _XfemShadowThickness(ow)) + { + _XfemConfigFlags(nw) |= XfeConfigLE; + } + + + return _XfeManagerChainSetValues(ow,rw,nw,xfeCaptionWidgetClass); +} +/*----------------------------------------------------------------------*/ +static void +GetValuesHook(Widget w,ArgList args,Cardinal* nargs) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + Cardinal i; + + for (i = 0; i < *nargs; i++) + { +#if 0 + /* label_string */ + if (strcmp(args[i].name,XmNlabelString) == 0) + { + *((XtArgVal *) args[i].value) = + (XtArgVal) XmStringCopy(lp->label_string); + } + /* font_list */ + else if (strcmp(args[i].name,XmNfontList) == 0) + { + *((XtArgVal *) args[i].value) = + (XtArgVal) XmFontListCopy(lp->font_list); + } +#endif + } +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeManager class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void +PreferredGeometry(Widget w,Dimension * width,Dimension * height) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + *width = _XfemOffsetLeft(w) + _XfemOffsetRight(w); + *height = _XfemOffsetTop(w) + _XfemOffsetBottom(w); + + /* Both */ + if (_XfeChildIsShown(pp->title) && _XfeChildIsShown(pp->child)) + { + if (pp->caption_layout == XmCAPTION_CHILD_ON_BOTTOM || + pp->caption_layout == XmCAPTION_CHILD_ON_TOP) + { + *width += XfeMax(_XfeWidth(pp->title),_XfeWidth(pp->child)); + + *height += + (_XfeHeight(pp->title) + + pp->spacing + + _XfeHeight(pp->child)); + } + else if (pp->caption_layout == XmCAPTION_CHILD_ON_LEFT || + pp->caption_layout == XmCAPTION_CHILD_ON_RIGHT) + { + *width += + (_XfeWidth(pp->title) + + pp->spacing + + _XfeWidth(pp->child)); + + *height += XfeMax(_XfeHeight(pp->title),_XfeHeight(pp->child)); + } +#ifdef DEBUG_ramiro + else + { + assert( 0 ); + } +#endif + } + /* Title only */ + else if (_XfeChildIsShown(pp->title)) + { + *width += _XfeWidth(pp->title); + + *height += _XfeHeight(pp->title); + } + /* Child only */ + else if (_XfeChildIsShown(pp->child)) + { + *width += _XfeWidth(pp->child); + + *height += _XfeHeight(pp->child); + } +} +/*----------------------------------------------------------------------*/ +static Boolean +AcceptChild(Widget child) +{ + return True; +} +/*----------------------------------------------------------------------*/ +static Boolean +InsertChild(Widget child) +{ +/* Widget w = XtParent(child); */ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + + return True; +} +/*----------------------------------------------------------------------*/ +static Boolean +DeleteChild(Widget child) +{ +/* Widget w = XtParent(child); */ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + + return True; +} +/*----------------------------------------------------------------------*/ +static void +ChangeManaged(Widget w) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ +} +/*----------------------------------------------------------------------*/ +static void +PrepareComponents(Widget w,int flags) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + +/* if (flags & _XFE_PREPARE_CLOSE_PIXMAP_MASK) */ +/* { */ +/* } */ +} +/*----------------------------------------------------------------------*/ +static void +LayoutComponents(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + /* Both */ + if (_XfeChildIsShown(pp->title) && _XfeChildIsShown(pp->child)) + { + if (pp->caption_layout == XmCAPTION_CHILD_ON_BOTTOM) + { + LayoutChildOnBottom(w); + } + else if (pp->caption_layout == XmCAPTION_CHILD_ON_LEFT) + { + LayoutChildOnLeft(w); + } + else if (pp->caption_layout == XmCAPTION_CHILD_ON_RIGHT) + { + LayoutChildOnRight(w); + } + else if (pp->caption_layout == XmCAPTION_CHILD_ON_TOP) + { + LayoutChildOnTop(w); + } + } + /* Title only */ + else if (_XfeChildIsShown(pp->title)) + { + LayoutTitleOnly(w); + } + /* Child only */ + else if (_XfeChildIsShown(pp->child)) + { + LayoutChildOnly(w); + } +} +/*----------------------------------------------------------------------*/ +static void +DrawComponents(Widget w,XEvent * event,Region region,XRectangle * clip_rect) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption action procedures */ +/* */ +/*----------------------------------------------------------------------*/ +static void +Activate(Widget w,XEvent * event,char ** params,Cardinal * nparams) +{ + _XfeCaptionActivate(w); +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Title functions */ +/* */ +/*----------------------------------------------------------------------*/ +static Widget +TitleCreate(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + Widget title = NULL; + Arg av[20]; + Cardinal ac = 0; + +/* XtSetArg(av[ac],XmNbackground, pp->title_background); ac++; */ +/* XtSetArg(av[ac],XmNforeground, pp->title_foreground); ac++; */ +/* XtSetArg(av[ac],XmNalignment, pp->title_alignment); ac++; */ + + XtSetArg(av[ac],XmNshadowThickness, 0); ac++; + XtSetArg(av[ac],XmNstringDirection, pp->title_direction); ac++; + XtSetArg(av[ac],XmNraiseBorderThickness, 0); ac++; + XtSetArg(av[ac],XmNraiseOnEnter, False); ac++; + XtSetArg(av[ac],XmNfillOnArm, False); ac++; + XtSetArg(av[ac],XmNarmOffset, 0); ac++; + + if (pp->title_font_list != NULL) + { + XtSetArg(av[ac],XmNfontList, pp->title_font_list); ac++; + } + + if (pp->title_string != NULL) + { + XtSetArg(av[ac],XmNlabelString, pp->title_string); ac++; + } + + title = XtCreateManagedWidget(TITLE_NAME, + xfeButtonWidgetClass, + w, + av, + ac); + + XtAddCallback(title,XmNactivateCallback,TitleActivateCB,w); + + return title; +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Title callbacks */ +/* */ +/*----------------------------------------------------------------------*/ +static void +TitleActivateCB(Widget title,XtPointer client_data,XtPointer call_data) +{ + Widget w = (Widget) client_data; + + _XfeCaptionActivate(w); +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Layout functions */ +/* */ +/*----------------------------------------------------------------------*/ +static void +LayoutChildOnBottom(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + assert( _XfeChildIsShown(pp->title) ); + assert( _XfeChildIsShown(pp->child) ); + +} +/*----------------------------------------------------------------------*/ +static void +LayoutChildOnLeft(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + assert( _XfeChildIsShown(pp->title) ); + assert( _XfeChildIsShown(pp->child) ); + +} +/*----------------------------------------------------------------------*/ +static void +LayoutChildOnRight(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + int title_x; + int title_y; + int child_x; + int child_y; + int child_width; + int child_height; + + assert( _XfeChildIsShown(pp->title) ); + assert( _XfeChildIsShown(pp->child) ); + + if (pp->child_resize) + { + child_width = + _XfemRectWidth(w) - + _XfeWidth(pp->title) - + pp->spacing; + +/* child_width = XfeMax(_XfeWidth(pp->child),child_width); */ + } + else + { + child_width = _XfeWidth(pp->child); + } + + if (child_width > pp->max_child_width) + { + child_width = pp->max_child_width; + } + + child_height = _XfeHeight(pp->child); + + /* Child x */ + if (pp->child_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_LEFT) + { + child_x = + _XfeWidth(w) - + _XfemOffsetRight(w) - + child_width; + + } + else if (pp->child_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_CENTER) + { + child_x = + _XfeWidth(w) - + _XfemOffsetRight(w) - + child_width; + + } + else if (pp->child_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_RIGHT) + { + child_x = + _XfeWidth(w) - + _XfemOffsetRight(w) - + child_width; + } + + /* Child y */ + if (pp->child_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_TOP) + { + child_y = _XfemOffsetTop(w); + } + else if (pp->child_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_CENTER) + { + child_y = (_XfeHeight(w) - child_height) / 2; + } + else if (pp->child_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_BOTTOM) + { + child_y = _XfeHeight(w) - _XfemOffsetBottom(w) - child_height; + } + + /* Title x */ + if (pp->title_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_LEFT) + { + title_x = _XfemOffsetLeft(w); + } + else if (pp->title_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_CENTER) + { + title_x = _XfemOffsetLeft(w); + } + else if (pp->title_hor_alignment == XmCAPTION_HORIZONTAL_ALIGNMENT_RIGHT) + { + title_x = _XfemOffsetLeft(w); + } + + /* Title y */ + if (pp->title_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_TOP) + { + title_y = _XfemOffsetTop(w); + } + else if (pp->title_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_CENTER) + { + title_y = (_XfeHeight(w) - _XfeHeight(pp->title)) / 2; + } + else if (pp->title_ver_alignment == XmCAPTION_VERTICAL_ALIGNMENT_BOTTOM) + { + title_y = _XfeHeight(w) - _XfemOffsetBottom(w) - _XfeHeight(pp->title); + } + + _XfeMoveWidget(pp->title,title_x,title_y); +/* _XfeMoveWidget(pp->child,child_x,child_y); */ + + _XfeConfigureWidget(pp->child,child_x,child_y,child_width,child_height); +} +/*----------------------------------------------------------------------*/ +static void +LayoutChildOnTop(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + assert( _XfeChildIsShown(pp->title) ); + assert( _XfeChildIsShown(pp->child) ); + +} +/*----------------------------------------------------------------------*/ +static void +LayoutTitleOnly (Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + assert( _XfeChildIsShown(pp->title) ); + + printf("LayoutChildTitleOnly(%s)\n",XtName(w)); +} +/*----------------------------------------------------------------------*/ +static void +LayoutChildOnly (Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + assert( _XfeChildIsShown(pp->child) ); + +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* RepType registration functions */ +/* */ +/*----------------------------------------------------------------------*/ +static void +RegisterCaptionLayout(void) +{ + static String names[] = + { + "caption_child_on_bottom", + "caption_child_on_left", + "caption_child_on_right", + "caption_child_on_top" + }; + + XmRepTypeRegister(XmRCaptionLayout,names,NULL,XtNumber(names)); +} +/*----------------------------------------------------------------------*/ +static void +RegisterCaptionHorizontalAlignment(void) +{ + static String names[] = + { + "caption_vertical_alignment_left", + "caption_vertical_alignment_center", + "caption_vertical_alignment_right" + }; + + XmRepTypeRegister(XmRCaptionVerticalAlignment,names,NULL,XtNumber(names)); +} +/*----------------------------------------------------------------------*/ +static void +RegisterCaptionVerticalAlignment(void) +{ + static String names[] = + { + "caption_vertical_alignment_bottom", + "caption_vertical_alignment_center", + "caption_vertical_alignment_top" + }; + + XmRepTypeRegister(XmRCaptionVerticalAlignment,names,NULL,XtNumber(names)); +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Misc functions */ +/* */ +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption method invocation functions */ +/* */ +/*----------------------------------------------------------------------*/ +/* extern */ void +_XfeCaptionActivate(Widget w) +{ + XfeCaptionWidgetClass mc = (XfeCaptionWidgetClass) XtClass(w); + + if (mc->xfe_caption_class.activate) + { + (*mc->xfe_caption_class.activate)(w); + } +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption Public Methods */ +/* */ +/*----------------------------------------------------------------------*/ +/* extern */ Widget +XfeCreateCaption(Widget pw,char * name,Arg * av,Cardinal ac) +{ + return XtCreateWidget(name,xfeCaptionWidgetClass,pw,av,ac); +} +/*----------------------------------------------------------------------*/ +extern Dimension +XfeCaptionMaxChildWidth(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + Dimension max_child_width = 0; + + assert( _XfeIsAlive(w) ); + + /* Both */ + if (_XfeChildIsShown(pp->title) && _XfeChildIsShown(pp->child)) + { + if (pp->caption_layout == XmCAPTION_CHILD_ON_BOTTOM || + pp->caption_layout == XmCAPTION_CHILD_ON_TOP) + { + max_child_width = _XfemRectWidth(w); + } + else if (pp->caption_layout == XmCAPTION_CHILD_ON_LEFT || + pp->caption_layout == XmCAPTION_CHILD_ON_RIGHT) + { + max_child_width = + _XfemRectWidth(w) - + _XfeWidth(pp->title) - + pp->spacing; + } + } + /* Title only */ + else if (_XfeChildIsShown(pp->title)) + { + max_child_width = 0; + } + /* Child only */ + else if (_XfeChildIsShown(pp->child)) + { + max_child_width = _XfemRectWidth(w); + } + + return max_child_width; +} +/*----------------------------------------------------------------------*/ diff --git a/cmd/xfe/XfeWidgets/XfeCaption/Caption.h b/cmd/xfe/XfeWidgets/XfeCaption/Caption.h new file mode 100644 index 00000000000..6fd057391b8 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/Caption.h @@ -0,0 +1,122 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeCaption widget public header file. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#ifndef _XfeCaption_h_ /* start Caption.h */ +#define _XfeCaption_h_ + +#include +#include + +XFE_BEGIN_CPLUSPLUS_PROTECTION + +/*----------------------------------------------------------------------*/ +/* */ +/* XmRCaptionLayout */ +/* */ +/*----------------------------------------------------------------------*/ +enum +{ + XmCAPTION_CHILD_ON_BOTTOM, + XmCAPTION_CHILD_ON_LEFT, + XmCAPTION_CHILD_ON_RIGHT, + XmCAPTION_CHILD_ON_TOP +}; +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XmRHorizontalAlignment */ +/* */ +/*----------------------------------------------------------------------*/ +enum +{ + XmCAPTION_HORIZONTAL_ALIGNMENT_LEFT, + XmCAPTION_HORIZONTAL_ALIGNMENT_CENTER, + XmCAPTION_HORIZONTAL_ALIGNMENT_RIGHT +}; +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XmRVerticalAlignment */ +/* */ +/*----------------------------------------------------------------------*/ +enum +{ + XmCAPTION_VERTICAL_ALIGNMENT_BOTTOM, + XmCAPTION_VERTICAL_ALIGNMENT_CENTER, + XmCAPTION_VERTICAL_ALIGNMENT_TOP +}; +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Caption max dimensions callback structure */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct +{ + int reason; /* Reason why CB was invoked */ + XEvent * event; /* Event that triggered CB */ + Dimension max_child_width; /* Max child width */ + Dimension max_child_height; /* Max child height */ +} XfeCaptionMaxDimensionsCallbackStruct; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeBox class names */ +/* */ +/*----------------------------------------------------------------------*/ +externalref WidgetClass xfeCaptionWidgetClass; + +typedef struct _XfeCaptionClassRec * XfeCaptionWidgetClass; +typedef struct _XfeCaptionRec * XfeCaptionWidget; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeBox subclass test macro */ +/* */ +/*----------------------------------------------------------------------*/ +#define XfeIsCaption(w) XtIsSubclass(w,xfeCaptionWidgetClass) + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption public methods */ +/* */ +/*----------------------------------------------------------------------*/ +extern Widget +XfeCreateCaption (Widget pw, + String name, + Arg * av, + Cardinal ac); +/*----------------------------------------------------------------------*/ +extern Dimension +XfeCaptionMaxChildWidth (Widget w); +/*----------------------------------------------------------------------*/ + +XFE_END_CPLUSPLUS_PROTECTION + +#endif /* end Caption.h */ diff --git a/cmd/xfe/XfeWidgets/XfeCaption/CaptionP.h b/cmd/xfe/XfeWidgets/XfeCaption/CaptionP.h new file mode 100644 index 00000000000..64bbdb2c012 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/CaptionP.h @@ -0,0 +1,138 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeCaption widget private header file. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#ifndef _XfeCaptionP_h_ /* start CaptionP.h */ +#define _XfeCaptionP_h_ + +#include +#include + +XFE_BEGIN_CPLUSPLUS_PROTECTION + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption Widget method inheritance macros */ +/* */ +/*----------------------------------------------------------------------*/ +#define XfeInheritCaptionActivate ((XtWidgetProc) _XtInherit) + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaptionClassPart */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct +{ + XtWidgetProc activate; /* activate */ + XtPointer extension; /* extension */ +} XfeCaptionClassPart; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaptionClassRec */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeCaptionClassRec +{ + CoreClassPart core_class; + CompositeClassPart composite_class; + ConstraintClassPart constraint_class; + XmManagerClassPart manager_class; + XfeManagerClassPart xfe_manager_class; + XfeCaptionClassPart xfe_caption_class; +} XfeCaptionClassRec; + +externalref XfeCaptionClassRec xfeCaptionClassRec; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaptionPart */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeCaptionPart +{ + /* Layout resources */ + unsigned char caption_layout; /* Caption layout */ + Dimension spacing; /* Spacing */ + + /* Title resources */ + Widget title; /* Title */ + unsigned char title_hor_alignment; /* Title hor alignment */ + unsigned char title_ver_alignment; /* Title ver alignment */ + unsigned char title_direction; /* Title direction */ + XmFontList title_font_list; /* Title font list */ + XmString title_string; /* Title string */ + + /* Child resources */ + Widget child; /* Child */ + unsigned char child_hor_alignment; /* Child hor alignment */ + unsigned char child_ver_alignment; /* Child ver alignment */ + Boolean child_resize; /* Child Resize */ + + /* Dimension resources */ + unsigned char max_child_method; /* Max child method */ + Dimension max_child_width; /* Max child width */ + Dimension max_child_height; /* Max child height */ + + /* Private data -- Dont even look past this comment -- */ + +} XfeCaptionPart; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaptionRec */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeCaptionRec +{ + CorePart core; + CompositePart composite; + ConstraintPart constraint; + XmManagerPart manager; + XfeManagerPart xfe_manager; + XfeCaptionPart xfe_caption; +} XfeCaptionRec; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaptionPart Access Macro */ +/* */ +/*----------------------------------------------------------------------*/ +#define _XfeCaptionPart(w) &(((XfeCaptionWidget) w) -> xfe_caption) + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption Method invocation functions */ +/* */ +/*----------------------------------------------------------------------*/ +extern void +_XfeCaptionActivate (Widget w); +/*----------------------------------------------------------------------*/ + +XFE_END_CPLUSPLUS_PROTECTION + +#endif /* end CaptionP.h */ + diff --git a/cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.ad b/cmd/xfe/XfeWidgets/XfeCaption/CaptionStringDefs.h similarity index 100% rename from cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.ad rename to cmd/xfe/XfeWidgets/XfeCaption/CaptionStringDefs.h diff --git a/cmd/xfe/XfeWidgets/XfeCaption/Makefile b/cmd/xfe/XfeWidgets/XfeCaption/Makefile new file mode 100644 index 00000000000..9f292d8d7bd --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/Makefile @@ -0,0 +1,55 @@ +#!gmake +# +# 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. + + +########################################################################## +# +# Name: Makefile +# Description: Makefile for XfeCaption library +# Author: Ramiro Estrugo +# +########################################################################## + + +DEPTH = ../../../.. + +# XfeWidgets headers are exported to dist/public/XfeCaption/Xfe. We use +# the 'Xfe' directory to avoid the hasstle of having to remember yet another +# include prefix. +MODULE = XfeCaption/Xfe + +LIBRARY_NAME = XfeCaption + +CSRCS = \ + Caption.c \ + TextCaption.c \ + $(NULL) + +REQUIRES = \ + XfeCaption \ + XfeWidgets + + +EXPORTS = \ + Caption.h \ + CaptionP.h \ + TextCaption.h \ + TextCaptionP.h \ + CaptionStringDefs.h \ + $(NULL) + +include $(DEPTH)/config/rules.mk diff --git a/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.c b/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.c new file mode 100644 index 00000000000..748e49569e8 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.c @@ -0,0 +1,359 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeTextCaption widget source. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#include +#include + +#define MESSAGE1 "Widget is not an XfeTextCaption." +#define MESSAGE2 "XmNtitleDirection is not XmSTRING_DIRECTION_L_TO_R or XmSTRING_DIRECTION_R_TO_L." + +#define TEXT_NAME "CaptionText" +#define DEFAULT_SUB_TITLE_NAME "TextCaptionSubTitle" + +/*----------------------------------------------------------------------*/ +/* */ +/* Core class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void Initialize (Widget,Widget,ArgList,Cardinal *); +static void Destroy (Widget); +static Boolean SetValues (Widget,Widget,Widget,ArgList,Cardinal *); +static void GetValuesHook (Widget,ArgList,Cardinal *); + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeManager class methods */ +/* */ +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void Activate (Widget); + +/*----------------------------------------------------------------------*/ +/* */ +/* Text functions */ +/* */ +/*----------------------------------------------------------------------*/ +static Widget TextCreate (Widget); + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption resources */ +/* */ +/*----------------------------------------------------------------------*/ +static XtResource resources[] = +{ + /* Text resources */ + { + XmNtextFontList, + XmCTextFontList, + XmRFontList, + sizeof(XmFontList), + XtOffsetOf(XfeTextCaptionRec , xfe_text_caption . text_font_list), + XmRCallProc, + (XtPointer) _XfeCallProcDefaultLabelFontList + }, + { + XmNtextString, + XmCTextString, + XmRXmString, + sizeof(XmString), + XtOffsetOf(XfeTextCaptionRec , xfe_text_caption . text_string), + XmRImmediate, + (XtPointer) NULL + }, +}; + +#if 0 +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption synthetic resources */ +/* */ +/*----------------------------------------------------------------------*/ +static XmSyntheticResource synthetic_resources[] = +{ + { + XmNtitleSpacing, + sizeof(Dimension), + XtOffsetOf(XfeTextCaptionRec , xfe_text_caption . title_spacing), + _XmFromHorizontalPixels, + _XmToHorizontalPixels + }, +}; +#endif + +/*----------------------------------------------------------------------*/ +/* */ +/* Widget Class Record Initialization */ +/* */ +/*----------------------------------------------------------------------*/ +_XFE_WIDGET_CLASS_RECORD(textcaption,TextCaption) = +{ + { + (WidgetClass) &xfeCaptionClassRec, /* superclass */ + "XfeTextCaption", /* class_name */ + sizeof(XfeTextCaptionRec), /* widget_size */ + NULL, /* class_initialize */ + NULL, /* class_part_initialize*/ + FALSE, /* class_inited */ + Initialize, /* initialize */ + NULL, /* initialize_hook */ + XtInheritRealize, /* realize */ + NULL, /* actions */ + 0, /* num_actions */ + resources, /* resources */ + XtNumber(resources), /* num_resources */ + NULLQUARK, /* xrm_class */ + TRUE, /* compress_motion */ + XtExposeCompressMaximal, /* compress_exposure */ + TRUE, /* compress_enterleave */ + FALSE, /* visible_interest */ + Destroy, /* destroy */ + XtInheritResize, /* resize */ + XtInheritExpose, /* expose */ + SetValues, /* set_values */ + NULL, /* set_values_hook */ + XtInheritSetValuesAlmost, /* set_values_almost */ + GetValuesHook, /* get_values_hook */ + NULL, /* access_focus */ + XtVersion, /* version */ + NULL, /* callback_private */ + XtInheritTranslations, /* tm_table */ + XtInheritQueryGeometry, /* query_geometry */ + XtInheritDisplayAccelerator, /* display accelerator */ + NULL, /* extension */ + }, + + /* Composite Part */ + { + XtInheritGeometryManager, /* geometry_manager */ + XtInheritChangeManaged, /* change_managed */ + XtInheritInsertChild, /* insert_child */ + XtInheritDeleteChild, /* delete_child */ + NULL /* extension */ + }, + + /* Constraint Part */ + { + NULL, /* syn resources */ + 0, /* num syn_resources */ + sizeof(XfeManagerConstraintRec), /* constraint size */ + NULL, /* init proc */ + NULL, /* destroy proc */ + NULL, /* set values proc */ + NULL, /* extension */ + }, + + /* XmManager Part */ + { + XtInheritTranslations, /* tm_table */ +#if 0 + synthetic_resources, /* syn resources */ + XtNumber(synthetic_resources), /* num syn_resources */ +#else + NULL, /* syn resources */ + 0, /* num syn_resources */ +#endif + NULL, /* syn_cont_resources */ + 0, /* num_syn_cont_resource*/ + XmInheritParentProcess, /* parent_process */ + NULL, /* extension */ + }, + + /* XfeManager Part */ + { + XfeInheritBitGravity, /* bit_gravity */ + XfeInheritPreferredGeometry, /* preferred_geometry */ + XfeInheritMinimumGeometry, /* minimum_geometry */ + XfeInheritUpdateRect, /* update_rect */ + XfeInheritAcceptChild, /* accept_child */ + XfeInheritInsertChild, /* insert_child */ + XfeInheritDeleteChild, /* delete_child */ + NULL, /* change_managed */ + NULL, /* prepare_components */ + XfeInheritLayoutComponents, /* layout_components */ + NULL, /* layout_children */ + NULL, /* draw_background */ + XfeInheritDrawShadow, /* draw_shadow */ + XfeInheritDrawComponents, /* draw_components */ + False, /* count_layable_children*/ + NULL, /* child_is_layable */ + NULL, /* extension */ + }, + + /* XfeCaption Part */ + { + Activate, /* activate */ + NULL, /* extension */ + }, + + /* XfeTextCaption Part */ + { + NULL, /* extension */ + }, +}; + +/*----------------------------------------------------------------------*/ +/* */ +/* xfeTextCaptionWidgetClass declaration. */ +/* */ +/*----------------------------------------------------------------------*/ +_XFE_WIDGET_CLASS(textcaption,TextCaption); + +/*----------------------------------------------------------------------*/ +/* */ +/* Core Class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void +Initialize(Widget rw,Widget nw,ArgList args,Cardinal *nargs) +{ + XfeCaptionPart * pp = _XfeCaptionPart(nw); +/* XfeTextCaptionPart * tp = _XfeTextCaptionPart(nw); */ + + /* Create private components */ + pp->child = TextCreate(nw); + + /* Finish of initialization */ + _XfeManagerChainInitialize(rw,nw,xfeTextCaptionWidgetClass); +} +/*----------------------------------------------------------------------*/ +static void +Destroy(Widget w) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ +} +/*----------------------------------------------------------------------*/ +static Boolean +SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs) +{ +/* XfeCaptionPart * np = _XfeCaptionPart(nw); */ +/* XfeCaptionPart * op = _XfeCaptionPart(ow); */ + + /* shadow_thickness */ + if (_XfemShadowThickness(nw) != _XfemShadowThickness(ow)) + { + _XfemConfigFlags(nw) |= XfeConfigLE; + } + + + return _XfeManagerChainSetValues(ow,rw,nw,xfeTextCaptionWidgetClass); +} +/*----------------------------------------------------------------------*/ +static void +GetValuesHook(Widget w,ArgList args,Cardinal* nargs) +{ +/* XfeCaptionPart * pp = _XfeCaptionPart(w); */ + Cardinal i; + + for (i = 0; i < *nargs; i++) + { +#if 0 + /* label_string */ + if (strcmp(args[i].name,XmNlabelString) == 0) + { + *((XtArgVal *) args[i].value) = + (XtArgVal) XmStringCopy(lp->label_string); + } + /* font_list */ + else if (strcmp(args[i].name,XmNfontList) == 0) + { + *((XtArgVal *) args[i].value) = + (XtArgVal) XmFontListCopy(lp->font_list); + } +#endif + } +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption class methods */ +/* */ +/*----------------------------------------------------------------------*/ +static void +Activate(Widget w) +{ + XfeCaptionPart * pp = _XfeCaptionPart(w); + + /* Traverse to the child if its alive */ + if (_XfeChildIsShown(pp->child)) + { + XmProcessTraversal(pp->child,XmTRAVERSE_CURRENT); + } +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* Text functions */ +/* */ +/*----------------------------------------------------------------------*/ +static Widget +TextCreate(Widget w) +{ + XfeTextCaptionPart * tp = _XfeTextCaptionPart(w); + Widget text = NULL; + Arg av[20]; + Cardinal ac = 0; + +/* XtSetArg(av[ac],XmNbackground, tp->text_background); ac++; */ +/* XtSetArg(av[ac],XmNforeground, tp->text_foreground); ac++; */ +/* XtSetArg(av[ac],XmNshadowThickness, 0); ac++; */ +/* XtSetArg(av[ac],XmNstringDirection, tp->text_direction); ac++; */ +/* XtSetArg(av[ac],XmNalignment, tp->text_alignment); ac++; */ + + if (tp->text_font_list != NULL) + { + XtSetArg(av[ac],XmNfontList, tp->text_font_list); ac++; + } + + text = XtCreateManagedWidget(TEXT_NAME, + xmTextFieldWidgetClass, + w, + av, + ac); + + return text; +} +/*----------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeCaption Public Methods */ +/* */ +/*----------------------------------------------------------------------*/ +/* extern */ Widget +XfeCreateTextCaption(Widget pw,char * name,Arg * av,Cardinal ac) +{ + return XtCreateWidget(name,xfeTextCaptionWidgetClass,pw,av,ac); +} +/*----------------------------------------------------------------------*/ diff --git a/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.h b/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.h new file mode 100644 index 00000000000..0776df84807 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/TextCaption.h @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeTextCaption widget public header file. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#ifndef _XfeTextCaption_h_ /* start TextCaption.h */ +#define _XfeTextCaption_h_ + +#include + +XFE_BEGIN_CPLUSPLUS_PROTECTION + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaption class names */ +/* */ +/*----------------------------------------------------------------------*/ +externalref WidgetClass xfeTextCaptionWidgetClass; + +typedef struct _XfeTextCaptionClassRec * XfeTextCaptionWidgetClass; +typedef struct _XfeTextCaptionRec * XfeTextCaptionWidget; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaption subclass test macro */ +/* */ +/*----------------------------------------------------------------------*/ +#define XfeIsTextCaption(w) XtIsSubclass(w,xfeTextCaptionWidgetClass) + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaption public methods */ +/* */ +/*----------------------------------------------------------------------*/ +extern Widget +XfeCreateTextCaption (Widget pw, + String name, + Arg * av, + Cardinal ac); +/*----------------------------------------------------------------------*/ + +XFE_END_CPLUSPLUS_PROTECTION + +#endif /* end Caption.h */ diff --git a/cmd/xfe/XfeWidgets/XfeCaption/TextCaptionP.h b/cmd/xfe/XfeWidgets/XfeCaption/TextCaptionP.h new file mode 100644 index 00000000000..abd5314ba6a --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeCaption/TextCaptionP.h @@ -0,0 +1,104 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: */ +/* Description: XfeTextCaption widget private header file. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#ifndef _XfeTextCaptionP_h_ /* start TextCaptionP.h */ +#define _XfeTextCaptionP_h_ + +#include +#include + +XFE_BEGIN_CPLUSPLUS_PROTECTION + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaptionClassPart */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct +{ + XtPointer extension; /* extension */ +} XfeTextCaptionClassPart; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaptionClassRec */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeTextCaptionClassRec +{ + CoreClassPart core_class; + CompositeClassPart composite_class; + ConstraintClassPart constraint_class; + XmManagerClassPart manager_class; + XfeManagerClassPart xfe_manager_class; + XfeCaptionClassPart xfe_caption_class; + XfeTextCaptionClassPart xfe_text_caption_class; +} XfeTextCaptionClassRec; + +externalref XfeTextCaptionClassRec xfeTextCaptionClassRec; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaptionPart */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeTextCaptionPart +{ + /* Text resources */ + XmString text_string; /* Text string */ + XmFontList text_font_list; /* Text font list */ + + /* Private data -- Dont even look past this comment -- */ +} XfeTextCaptionPart; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaptionRec */ +/* */ +/*----------------------------------------------------------------------*/ +typedef struct _XfeTextCaptionRec +{ + CorePart core; + CompositePart composite; + ConstraintPart constraint; + XmManagerPart manager; + XfeManagerPart xfe_manager; + XfeCaptionPart xfe_caption; + XfeTextCaptionPart xfe_text_caption; +} XfeTextCaptionRec; + +/*----------------------------------------------------------------------*/ +/* */ +/* XfeTextCaptionPart Access Macro */ +/* */ +/*----------------------------------------------------------------------*/ +#define _XfeTextCaptionPart(w) \ +&(((XfeTextCaptionWidget) w) -> xfe_text_caption) + +XFE_END_CPLUSPLUS_PROTECTION + +#endif /* end TextCaptionP.h */ + diff --git a/cmd/xfe/XfeWidgets/XfeComboBox/ComboBox.c b/cmd/xfe/XfeWidgets/XfeComboBox/ComboBox.c index c8867b5454c..51627d987d6 100644 --- a/cmd/xfe/XfeWidgets/XfeComboBox/ComboBox.c +++ b/cmd/xfe/XfeWidgets/XfeComboBox/ComboBox.c @@ -34,6 +34,7 @@ #include #include +#include #include #include diff --git a/cmd/xfe/XfeWidgets/XfeComboBox/ComboBoxStringDefs.h b/cmd/xfe/XfeWidgets/XfeComboBox/ComboBoxStringDefs.h index ac23e4cff65..e69de29bb2d 100644 --- a/cmd/xfe/XfeWidgets/XfeComboBox/ComboBoxStringDefs.h +++ b/cmd/xfe/XfeWidgets/XfeComboBox/ComboBoxStringDefs.h @@ -1,79 +0,0 @@ -/* -*- Mode: C; tab-width: 4; 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. - */ - -/*----------------------------------------------------------------------*/ -/* */ -/* Name: */ -/* Description: XfeComboBox string definitions. */ -/* Author: Ramiro Estrugo */ -/* */ -/*----------------------------------------------------------------------*/ - -#ifndef _XfeComboBoxStringDefs_h_ /* start ComboBoxStringDefs.h*/ -#define _XfeComboBoxStringDefs_h_ - -/*----------------------------------------------------------------------*/ -/* */ -/* Callback Names */ -/* */ -/*----------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------*/ -/* */ -/* Resource Names */ -/* */ -/*----------------------------------------------------------------------*/ -#define XmNarrow "arrow" -#define XmNlistFontList "listFontList" -#define XmNshareShell "shareShell" -#define XmNshell "shell" -#define XmNtitleShadowThickness "titleShadowThickness" -#define XmNtitleShadowType "titleShadowType" -#define XmNtitleFontList "titleFontList" - -/*----------------------------------------------------------------------*/ -/* */ -/* Class Names */ -/* */ -/*----------------------------------------------------------------------*/ -#define XmCListFontList "ListFontList" -#define XmCTitleFontList "TitleFontList" -#define XmCShareShell "ShareShell" - -/*----------------------------------------------------------------------*/ -/* */ -/* Things that conflict with Motif 2.x */ -/* */ -/*----------------------------------------------------------------------*/ -#if XmVersion < 2000 -#define XmNcomboBoxType "comboBoxType" -#define XmCComboBoxType "ComboBoxType" -#define XmRComboBoxType "ComboBoxType" -#endif - -/*----------------------------------------------------------------------*/ -/* */ -/* Things that conflict elsewhere */ -/* */ -/*----------------------------------------------------------------------*/ -#ifndef XmNlist -#define XmNlist "list" -#endif - - -#endif /* end ComboBoxStringDefs.h */ diff --git a/cmd/xfe/XfeWidgets/XfeComboBox/Makefile b/cmd/xfe/XfeWidgets/XfeComboBox/Makefile new file mode 100644 index 00000000000..fe98a9855c0 --- /dev/null +++ b/cmd/xfe/XfeWidgets/XfeComboBox/Makefile @@ -0,0 +1,55 @@ +#!gmake +# +# 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. + + +########################################################################## +# +# Name: Makefile +# Description: Makefile for XfeComboBox library +# Author: Ramiro Estrugo +# +########################################################################## + + +DEPTH = ../../../.. + +# XfeWidgets headers are exported to dist/public/XfeComboBox/Xfe. We use +# the 'Xfe' directory to avoid the hasstle of having to remember yet another +# include prefix. +MODULE = XfeComboBox/Xfe + +LIBRARY_NAME = XfeComboBox + +CSRCS = \ + ComboBox.c \ + FancyBox.c \ + $(NULL) + +REQUIRES = \ + XfeComboBox \ + XfeWidgets + + +EXPORTS = \ + ComboBox.h \ + ComboBoxP.h \ + ComboBoxStringDefs.h \ + FancyBox.h \ + FancyBoxP.h \ + $(NULL) + +include $(DEPTH)/config/rules.mk diff --git a/cmd/xfe/XfeWidgets/tests/Makefile b/cmd/xfe/XfeWidgets/tests/Makefile index a50b106f2f8..c08335d9d16 100644 --- a/cmd/xfe/XfeWidgets/tests/Makefile +++ b/cmd/xfe/XfeWidgets/tests/Makefile @@ -29,6 +29,7 @@ DEPTH = ../../../.. ifdef eXFE_WIDGETS_BUILD_UNUSED UNUSED_DIRS = \ XfeComboBox \ + XfeCaption \ $(NULL) endif diff --git a/cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.c b/cmd/xfe/XfeWidgets/tests/Xfe/ComboBoxTest.c deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/cmd/xfe/XfeWidgets/tests/Xfe/Makefile b/cmd/xfe/XfeWidgets/tests/Xfe/Makefile index bf02c5bee4f..c31d9726a70 100644 --- a/cmd/xfe/XfeWidgets/tests/Xfe/Makefile +++ b/cmd/xfe/XfeWidgets/tests/Xfe/Makefile @@ -28,7 +28,6 @@ DEPTH = ../../../../.. ifdef XFE_WIDGETS_BUILD_UNUSED UNUSED_CSRCS = \ ChromeTest.c \ - ComboBoxTest.c \ FontChooserTest.c \ FrameShellTest.c \ $(NULL) diff --git a/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.ad b/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.ad new file mode 100644 index 00000000000..5b4b06802d0 --- /dev/null +++ b/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.ad @@ -0,0 +1,64 @@ +! -*- Mode: Fundamental; tab-width: 4; indent-tabs-mode: nil -*- +! +! 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. + + +CaptionTest*MainForm.width: 800 +CaptionTest*MainForm.height: 400 +CaptionTest*MainForm.background: Gray60 +CaptionTest*MainForm.shadowThickness: 0 +CaptionTest*MainForm.shadowType: shadow_in + +CaptionTest*fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* +CaptionTest*labelFontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* +CaptionTest*foreground: Black + +CaptionTest*Caption.bottomAttachment: attach_form +CaptionTest*Caption.leftAttachment: attach_form +CaptionTest*Caption.rightAttachment: attach_form +CaptionTest*Caption.topAttachment: attach_form + +CaptionTest*Caption.bottomOffset: 10 +CaptionTest*Caption.leftOffset: 10 +CaptionTest*Caption.rightOffset: 10 +CaptionTest*Caption.topOffset: 10 + +CaptionTest*Caption*background: Gray60 + +CaptionTest*Caption.usePreferredWidth: false +CaptionTest*Caption.usePreferredHeight: false + +CaptionTest*Caption.titleFontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +CaptionTest*Caption.subTitleFontList: -*-helvetica-medium-r-*-*-*-100-*-*-*-*-iso8859-* + +!CaptionTest*Caption.titleDirection: string_direction_r_to_l +CaptionTest*Caption.titleAlignment: alignment_beginning +CaptionTest*Caption.subTitleAlignment: alignment_end + +CaptionTest*Caption.frameThickness: 3 +CaptionTest*Caption.frameType: shadow_etched_in + + +CaptionTest*Caption.titleWidgetName: Caca +CaptionTest*Caption.subTitleWidgetName: Vaca +!CaptionTest*Caption*Caca*background: red + + +!CaptionTest*CaptionselectBackground: #FFFFCC +!CaptionTest*Caption*selectForeground: Black +!CaptionTest*Caption.background: red + + diff --git a/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.c b/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.c new file mode 100644 index 00000000000..5cbefd9d462 --- /dev/null +++ b/cmd/xfe/XfeWidgets/tests/XfeCaption/CaptionTest.c @@ -0,0 +1,51 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: CaptionTest.c */ +/* Description: Test for XfeCaption widget. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#include +#include + +/*----------------------------------------------------------------------*/ +int +main(int argc,char *argv[]) +{ + Widget form; + Widget frame; + Widget pref_item; + + XfeAppCreateSimple("CaptionTest",&argc,argv,"MainFrame",&frame,&form); + + pref_item = XtVaCreateManagedWidget("Caption", + xfeCaptionWidgetClass, + form, + NULL); + + XtPopup(frame,XtGrabNone); + + XfeAppMainLoop(); + + return 0; +} +/*----------------------------------------------------------------------*/ diff --git a/cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile b/cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile new file mode 100644 index 00000000000..821a353d429 --- /dev/null +++ b/cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile @@ -0,0 +1,44 @@ +#! gmake +# +# 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. + + +# + +DEPTH = ../../../../.. + +CSRCS = \ + CaptionTest.c \ + TextCaptionTest.c \ + $(NULL) + +REQUIRES = \ + XfeTest \ + XfeCaption \ + XfeBm \ + XfeWidgets + +STATIC_PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.static)) +SHARED_PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.shared)) + +include $(DEPTH)/config/rules.mk +include $(DEPTH)/cmd/xfe/XfeWidgets/XfeWidgets.mk + +all:: $(STATIC_PROGS) $(SHARED_PROGS) +install:: $(STATIC_PROGS) $(SHARED_PROGS) + +shared: $(SHARED_PROGS) +static: $(STATIC_PROGS) diff --git a/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.ad b/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.ad new file mode 100644 index 00000000000..3f1f17de4be --- /dev/null +++ b/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.ad @@ -0,0 +1,80 @@ +! -*- Mode: Fundamental; tab-width: 4; indent-tabs-mode: nil -*- +! +! 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. + + +TextCaptionTest*MainForm.width: 800 +TextCaptionTest*MainForm.height: 400 +TextCaptionTest*MainForm.background: Gray60 +TextCaptionTest*MainForm.shadowThickness: 0 +TextCaptionTest*MainForm.shadowType: shadow_in + +!TextCaptionTest*fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* +!TextCaptionTest*labelFontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* +TextCaptionTest*foreground: Black + +TextCaptionTest*titleFontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* + +TextCaptionTest*textFontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* + +TextCaptionTest*XfeTextCaption*background: CadetBlue +TextCaptionTest*XfeTextCaption*CaptionText.shadowThickness: 1 +TextCaptionTest*XfeTextCaption.shadowThickness: 1 + +TextCaptionTest*XfeTextCaption.childResize: true +!TextCaptionTest*XfeTextCaption.maxChildWidth: 400 + +TextCaptionTest*XfeTextCaption.usePreferredWidth: false +TextCaptionTest*XfeTextCaption.usePreferredHeight: true + + +TextCaptionTest*Caption1.topAttachment: attach_form +TextCaptionTest*Caption1.bottomAttachment: attach_none +TextCaptionTest*Caption1.leftAttachment: attach_form +TextCaptionTest*Caption1.rightAttachment: attach_form + +TextCaptionTest*Caption1.bottomOffset: 10 +TextCaptionTest*Caption1.leftOffset: 10 +TextCaptionTest*Caption1.rightOffset: 10 +TextCaptionTest*Caption1.topOffset: 10 + +TextCaptionTest*Caption2.topAttachment: attach_widget +TextCaptionTest*Caption2.bottomAttachment: attach_none +TextCaptionTest*Caption2.leftAttachment: attach_form +TextCaptionTest*Caption2.rightAttachment: attach_form + +TextCaptionTest*Caption2.topWidget: Caption1 + +TextCaptionTest*Caption2.bottomOffset: 10 +TextCaptionTest*Caption2.leftOffset: 10 +TextCaptionTest*Caption2.rightOffset: 10 +TextCaptionTest*Caption2.topOffset: 10 + +TextCaptionTest*Caption3.topAttachment: attach_widget +TextCaptionTest*Caption3.bottomAttachment: attach_none +TextCaptionTest*Caption3.leftAttachment: attach_form +TextCaptionTest*Caption3.rightAttachment: attach_form + +TextCaptionTest*Caption3.topWidget: Caption2 + +TextCaptionTest*Caption3.bottomOffset: 10 +TextCaptionTest*Caption3.leftOffset: 10 +TextCaptionTest*Caption3.rightOffset: 10 +TextCaptionTest*Caption3.topOffset: 10 + +TextCaptionTest*Caption1.titleString: Phone Number: +TextCaptionTest*Caption2.titleString: Address: +TextCaptionTest*Caption3.titleString: Name: diff --git a/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.c b/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.c new file mode 100644 index 00000000000..639dc83b6a3 --- /dev/null +++ b/cmd/xfe/XfeWidgets/tests/XfeCaption/TextCaptionTest.c @@ -0,0 +1,66 @@ +/* -*- Mode: C; tab-width: 4; 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. + */ + +/*----------------------------------------------------------------------*/ +/* */ +/* Name: TextCaptionTest.c */ +/* Description: Test for XfeTextCaption widget. */ +/* Author: Ramiro Estrugo */ +/* */ +/*----------------------------------------------------------------------*/ + +#include +#include + +static Widget create_caption (Widget,String); + +static Widget _captions[3]; + +/*----------------------------------------------------------------------*/ +int +main(int argc,char *argv[]) +{ + Widget form; + Widget frame; + + XfeAppCreateSimple("TextCaptionTest",&argc,argv,"MainFrame",&frame,&form); + + _captions[0] = create_caption(form,"Caption1"); + _captions[1] = create_caption(form,"Caption2"); + _captions[2] = create_caption(form,"Caption3"); + + XtPopup(frame,XtGrabNone); + + XfeAppMainLoop(); + + return 0; +} +/*----------------------------------------------------------------------*/ +static Widget +create_caption(Widget pw,String name) +{ + Widget caption; + + caption = XtVaCreateManagedWidget(name, + xfeTextCaptionWidgetClass, + pw, + NULL); + + return caption; +} +/*----------------------------------------------------------------------*/