зеркало из https://github.com/mozilla/pjs.git
move XfeWidgets tests to their own directory
This commit is contained in:
Родитель
94d042859f
Коммит
1c5942f479
|
@ -15,52 +15,19 @@
|
|||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
|
||||
##########################################################################
|
||||
#
|
||||
# Name: Makefile
|
||||
# Description: Makefile for Xfe Widgets tests
|
||||
# Author: Ramiro Estrugo <ramiro@netscape.com>
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
DEPTH = ../../../..
|
||||
|
||||
ifdef XFE_WIDGETS_BUILD_UNUSED
|
||||
UNUSED_CSRCS = \
|
||||
ChromeTest.c \
|
||||
ComboBoxTest.c \
|
||||
FontChooserTest.c \
|
||||
FrameShellTest.c \
|
||||
$(NULL)
|
||||
|
||||
|
||||
endif
|
||||
|
||||
CSRCS = \
|
||||
$(UNUSED_CSRCS) \
|
||||
ArrowTest.c \
|
||||
ButtonTest.c \
|
||||
CascadeTest.c \
|
||||
DashBoardTest.c \
|
||||
LabelTest.c \
|
||||
LogoTest.c \
|
||||
MenuTest.c \
|
||||
PaneTestOne.c \
|
||||
PaneTestThree.c \
|
||||
PaneTestTwo.c \
|
||||
PixmapTest.c \
|
||||
ProgressBarTest.c \
|
||||
TaskBarTestOne.c \
|
||||
TaskBarTestTwo.c \
|
||||
ToolBarTest.c \
|
||||
ToolBoxTest.c \
|
||||
ToolScrollTest.c \
|
||||
$(NULL)
|
||||
|
||||
REQUIRES = \
|
||||
XfeTest \
|
||||
XfeWidgets
|
||||
|
||||
STATIC_PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.static))
|
||||
SHARED_PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.shared))
|
||||
DIRS = \
|
||||
Xfe \
|
||||
XmL
|
||||
|
||||
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)
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
! -*- 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.
|
||||
|
||||
ArrowTest*MainForm.width: 800
|
||||
ArrowTest*MainForm.height: 400
|
||||
ArrowTest*MainForm*background: Gray70
|
||||
ArrowTest*MainForm.shadowThickness: 0
|
||||
|
||||
|
||||
ArrowTest*Arrow.leftAttachment: attach_form
|
||||
ArrowTest*Arrow.topAttachment: attach_form
|
||||
ArrowTest*Arrow.leftOffset: 10
|
||||
ArrowTest*Arrow.topOffset: 10
|
||||
ArrowTest*Arrow.arrowWidth: 100
|
||||
ArrowTest*Arrow.arrowHeight: 100
|
||||
!ArrowTest*Arrow.fillOnArm: false
|
||||
!ArrowTest*Arrow.raiseOnEnter: false
|
||||
|
||||
!ArrowTest*Arrow.raiseOnEnter: true
|
||||
!ArrowTest*Arrow.fillOnRaise: true
|
||||
!ArrowTest*Arrow.fillOnEnter: true
|
||||
|
||||
|
||||
ArrowTest*Arrow.fillOnEnter: true
|
||||
|
||||
!ArrowTest*Arrow.raiseBorderThickness: 1
|
||||
|
||||
!ArrowTest*Arrow.background: red
|
||||
!ArrowTest*Arrow.foreground: blue
|
||||
|
||||
ArrowTest*Arrow.foreground: red
|
||||
|
||||
ArrowTest*Arrow.raiseForeground: blue
|
||||
|
||||
|
||||
!ArrowTest*Arrow.borderWidth: 1
|
||||
!ArrowTest*Arrow.borderColor: red
|
||||
|
||||
!ArrowTest*Arrow.armColor: red
|
||||
|
||||
|
||||
ArrowTest*Arrow.emulateMotif: false
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/* -*- 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: ArrowTest.c */
|
||||
/* Description: Test for XfeArrow widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget arrow;
|
||||
|
||||
XfeAppCreateSimple("ArrowTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
arrow = XtVaCreateManagedWidget("Arrow",
|
||||
xfeArrowWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,87 @@
|
|||
! -*- 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.
|
||||
|
||||
|
||||
ButtonTest*MainForm.width: 500
|
||||
ButtonTest*MainForm.height: 700
|
||||
ButtonTest*MainForm.background: Gray70
|
||||
ButtonTest*MainForm.shadowThickness: 0
|
||||
ButtonTest*MainForm.shadowType: shadow_in
|
||||
|
||||
ButtonTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
ButtonTest*labelFontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
ButtonTest*foreground: Black
|
||||
|
||||
!!
|
||||
!! MenuBar
|
||||
!!
|
||||
ButtonTest*MenuBar.leftAttachment: attach_form
|
||||
ButtonTest*MenuBar.rightAttachment: attach_form
|
||||
ButtonTest*MenuBar.topAttachment: attach_form
|
||||
ButtonTest*MenuBar.bottomAttachment: attach_none
|
||||
|
||||
ButtonTest*MenuBar*background: Gray65
|
||||
ButtonTest*MenuBar*shadowThickness: 2
|
||||
|
||||
ButtonTest*MenuBar*File.mnemonic: F
|
||||
ButtonTest*MenuBar*Toggle.mnemonic: T
|
||||
|
||||
ButtonTest*MenuBar*File*Exit.labelString: Exit
|
||||
ButtonTest*MenuBar*File*Exit.acceleratorText: Alt-Q
|
||||
ButtonTest*MenuBar*File*Exit.accelerator: Alt<Key>Q
|
||||
ButtonTest*MenuBar*File*Exit.mnemonic: x
|
||||
|
||||
!!
|
||||
!! ToolBar
|
||||
!!
|
||||
ButtonTest*ButtonTarget.leftAttachment: attach_form
|
||||
ButtonTest*ButtonTarget.rightAttachment: attach_none
|
||||
ButtonTest*ButtonTarget.topAttachment: attach_form
|
||||
ButtonTest*ButtonTarget.bottomAttachment: attach_none
|
||||
|
||||
!ButtonTest*ButtonTarget.topWidget: MenuBar
|
||||
|
||||
ButtonTest*ButtonTarget.topOffset: 200
|
||||
ButtonTest*ButtonTarget.leftOffset: 50
|
||||
|
||||
ButtonTest*ButtonTarget.background: Gray70
|
||||
|
||||
ButtonTest*ButtonTarget.buttonType: button_push
|
||||
|
||||
ButtonTest*ButtonTarget.raiseOnEnter: true
|
||||
|
||||
ButtonTest*ButtonTarget.shadowThickness: 2
|
||||
|
||||
ButtonTest*ButtonTarget.raiseBorderThickness: 2
|
||||
|
||||
ButtonTest*ButtonTarget.marginLeft: 10
|
||||
ButtonTest*ButtonTarget.marginRight: 10
|
||||
ButtonTest*ButtonTarget.marginTop: 10
|
||||
ButtonTest*ButtonTarget.marginBottom: 10
|
||||
|
||||
!ButtonTest*ButtonTarget.buttonTrigger: button_trigger_either
|
||||
|
||||
!ButtonTest*ButtonTarget.cursor: hand2
|
||||
ButtonTest*ButtonTarget.transparentCursor: cross
|
||||
|
||||
!ButtonTest*ButtonTarget.selectionModifiers: Shift
|
||||
ButtonTest*ButtonTarget.editModifiers: Shift
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,649 @@
|
|||
/* -*- 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: ButtonTest.c */
|
||||
/* Description: Test for XfeButton widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget create_button (Widget,String);
|
||||
static void install_large_pixmaps (Widget);
|
||||
static void install_small_pixmaps (Widget);
|
||||
static void change_pixmap (Widget);
|
||||
static void change_label (Widget);
|
||||
static void button_callback (Widget,XtPointer,XtPointer);
|
||||
static void menu_item_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget _button_target = NULL;
|
||||
|
||||
static String labels[] =
|
||||
{
|
||||
"Label One",
|
||||
"A",
|
||||
"This is a long label",
|
||||
"",
|
||||
"The previous one was blank",
|
||||
"Label Four",
|
||||
"First Line\nSecond Line\nThird Line",
|
||||
"-=-=-=-= What ? #$!&*",
|
||||
};
|
||||
|
||||
#define CMP(s1,s2) (strcmp((s1),(s2)) == 0)
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec file_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ "Save", XfeMENU_PUSH },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Exit", XfeMENU_PUSH, XfeExitCallback },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_type_items[] =
|
||||
{
|
||||
{ "TypePush", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TypeToggle", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TypeNone", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_layout_items[] =
|
||||
{
|
||||
{ "LayoutLabelOnly", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "LayoutLabelOnBottom", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "LayoutLabelOnLeft", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "LayoutLabelOnRight", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "LayoutLabelOnTop", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "LayoutPixmapOnly", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_trigger_items[] =
|
||||
{
|
||||
{ "TriggerAnywhere", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TriggerEither", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TriggerNeither", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TriggerLabel", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "TriggerPixmap", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec modifiers_items[] =
|
||||
{
|
||||
{ "None", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Any", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Shift", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Control", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Alt", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Mod1", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Mod2", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Mod3", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "Mod4", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_boolean_items[] =
|
||||
{
|
||||
{ "TraversalOn", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "RaiseOnEnter", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "FillOnEnter", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "FillOnArm" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "EmulateMotif", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Armed", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "Raised", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Sensitive", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "PretendSensitive", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Selected", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "UsePreferredWidth", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "UsePreferredHeight", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec misc_items[] =
|
||||
{
|
||||
{ "ChangePixmap", XfeMENU_PUSH, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec label_items[] =
|
||||
{
|
||||
{ "ChangeLabel", XfeMENU_PUSH, menu_item_cb },
|
||||
{ "Modifiers", XfeMENU_PANE, NULL, modifiers_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimension_items[] =
|
||||
{
|
||||
{ "0", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "2", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "3", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "4", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "5", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "6", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "7", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "8", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "9", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "10", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "20", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "30", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "40", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "50", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "100", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "200", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "300", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "400", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "500", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1000", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec margin_items[] =
|
||||
{
|
||||
{ "MarginLeft", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginRight", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginTop", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginBottom", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "MarginAll" , XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec shadow_type_items[] =
|
||||
{
|
||||
{ "ShadowIn", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "ShadowOut", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "ShadowEtchedIn", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "ShadowEtchedOut", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec alignment_items[] =
|
||||
{
|
||||
{ "AlignmentBeginning", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "AlignmentCenter", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "AlignmentEnd", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec enumeration_items[] =
|
||||
{
|
||||
{ "ButtonType", XfeMENU_PANE, NULL, button_type_items },
|
||||
{ "ButtonLayout", XfeMENU_PANE, NULL, button_layout_items },
|
||||
{ "ButtonTrigger", XfeMENU_PANE, NULL, button_trigger_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "ShadowType", XfeMENU_PANE, NULL, shadow_type_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "LabelAlignment", XfeMENU_PANE, NULL, alignment_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimensions_items[] =
|
||||
{
|
||||
{ "Width", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "Height", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "HighlightThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "ShadowThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Margins", XfeMENU_PANE, NULL, margin_items },
|
||||
{ "RaiseBorderThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "Spacing", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "ArmOffset", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec xm_primitive_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec xfe_primitive_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuPaneRec pane_items[] =
|
||||
{
|
||||
{ "File", file_items },
|
||||
{ "XfePrimitive", xfe_primitive_items },
|
||||
{ "Enumeration", enumeration_items },
|
||||
{ "Dimensions", dimensions_items },
|
||||
{ "Boolean", button_boolean_items },
|
||||
{ "Misc", misc_items },
|
||||
{ "Label", label_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static Widget _main_form;
|
||||
static Widget _menu_bar;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget frame;
|
||||
|
||||
XfeAppCreateSimple("ButtonTest",&argc,argv,"MainFrame",&frame,&_main_form);
|
||||
|
||||
_button_target = create_button(_main_form,"ButtonTarget");
|
||||
|
||||
_menu_bar = XfeMenuBarCreate(_main_form,"MenuBar",
|
||||
pane_items,
|
||||
(XtPointer) _button_target,NULL,0);
|
||||
|
||||
install_large_pixmaps(_button_target);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_button(Widget parent,String name)
|
||||
{
|
||||
Widget w;
|
||||
|
||||
w = XtVaCreateManagedWidget(name,
|
||||
xfeButtonWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(w,XmNactivateCallback,button_callback,NULL);
|
||||
XtAddCallback(w,XmNarmCallback,button_callback,NULL);
|
||||
XtAddCallback(w,XmNdisarmCallback,button_callback,NULL);
|
||||
XtAddCallback(w,XmNselectionChangedCallback,button_callback,NULL);
|
||||
/* XtAddCallback(w,XmNenterCallback,button_callback,NULL); */
|
||||
/* XtAddCallback(w,XmNleaveCallback,button_callback,NULL); */
|
||||
|
||||
return w;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
install_large_pixmaps(Widget w)
|
||||
{
|
||||
if (!XfeIsAlive(w))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
XtVaSetValues(
|
||||
w,
|
||||
XmNpixmap, XfeGetPixmap(w,"task_browser"),
|
||||
XmNpixmapMask, XfeGetMask(w,"task_browser"),
|
||||
XmNarmedPixmap, XfeGetPixmap(w,"task_browser_armed"),
|
||||
XmNarmedPixmapMask, XfeGetMask(w,"task_browser_armed"),
|
||||
XmNraisedPixmap, XfeGetPixmap(w,"task_browser_raised"),
|
||||
XmNraisedPixmapMask, XfeGetMask(w,"task_browser_raised"),
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
install_small_pixmaps(Widget w)
|
||||
{
|
||||
if (!XfeIsAlive(w))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
XtVaSetValues(
|
||||
w,
|
||||
XmNpixmap, XfeGetPixmap(w,"task_small_browser"),
|
||||
XmNpixmapMask, XfeGetMask(w,"task_small_browser"),
|
||||
XmNarmedPixmap, XfeGetPixmap(w,"task_small_browser_armed"),
|
||||
XmNarmedPixmapMask, XfeGetMask(w,"task_small_browser_armed"),
|
||||
XmNraisedPixmap, XfeGetPixmap(w,"task_small_browser_raised"),
|
||||
XmNraisedPixmapMask, XfeGetMask(w,"task_small_browser_raised"),
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
change_pixmap(Widget w)
|
||||
{
|
||||
static Boolean toggle = True;
|
||||
|
||||
if (!XfeIsAlive(w))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (toggle)
|
||||
{
|
||||
install_small_pixmaps(w);
|
||||
}
|
||||
else
|
||||
{
|
||||
install_large_pixmaps(w);
|
||||
}
|
||||
|
||||
toggle = !toggle;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
change_label(Widget w)
|
||||
{
|
||||
static Cardinal i = 0;
|
||||
|
||||
if (!XfeIsAlive(w))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
XfeSetXmStringPSZ(w,
|
||||
XmNlabelString,
|
||||
XmFONTLIST_DEFAULT_TAG,
|
||||
labels[i % XtNumber(labels)]);
|
||||
|
||||
i++;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
menu_item_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
String parent_name = XtName(XtParent(w));
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
printf("menu_item_cb(%s,%s)\n",name,parent_name);
|
||||
|
||||
if (!XfeIsAlive(_button_target))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Modifiers */
|
||||
if (CMP(parent_name,"Modifiers"))
|
||||
{
|
||||
if (CMP(name,"None"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,None); ac++;
|
||||
}
|
||||
else if (CMP(name,"Any"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,AnyModifier); ac++;
|
||||
}
|
||||
else if (CMP(name,"Shift"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,ShiftMask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Control"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,ControlMask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Alt"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,Mod1Mask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Mod1"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,Mod1Mask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Mod2"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,Mod2Mask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Mod3"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,Mod3Mask); ac++;
|
||||
}
|
||||
else if (CMP(name,"Mod4"))
|
||||
{
|
||||
XtSetArg(av[ac],XmNselectionModifiers,Mod4Mask); ac++;
|
||||
}
|
||||
}
|
||||
else if (strcmp(name,"TypePush") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonType,XmBUTTON_PUSH); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TypeToggle") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonType,XmBUTTON_TOGGLE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TypeNone") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonType,XmBUTTON_NONE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"RaiseOnEnter") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNraiseOnEnter);
|
||||
}
|
||||
else if (strcmp(name,"TraversalOn") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNtraversalOn);
|
||||
}
|
||||
else if (strcmp(name,"EmulateMotif") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNemulateMotif);
|
||||
}
|
||||
else if (strcmp(name,"Armed") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNarmed);
|
||||
}
|
||||
else if (strcmp(name,"Raised") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNraised);
|
||||
}
|
||||
else if (strcmp(name,"Selected") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNselected);
|
||||
}
|
||||
else if (strcmp(name,"PretendSensitive") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNpretendSensitive);
|
||||
}
|
||||
else if (strcmp(name,"Sensitive") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNsensitive);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredWidth") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNusePreferredWidth);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredHeight") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNusePreferredHeight);
|
||||
}
|
||||
else if (strcmp(name,"FillOnEnter") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNfillOnEnter);
|
||||
}
|
||||
else if (strcmp(name,"FillOnArm") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_button_target,XmNfillOnArm);
|
||||
}
|
||||
else if (strcmp(name,"LayoutLabelOnly") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_LABEL_ONLY); ac++;
|
||||
}
|
||||
else if (strcmp(name,"LayoutLabelOnBottom") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_LABEL_ON_BOTTOM); ac++;
|
||||
}
|
||||
else if (strcmp(name,"LayoutLabelOnLeft") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_LABEL_ON_LEFT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"LayoutLabelOnRight") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_LABEL_ON_RIGHT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"LayoutLabelOnTop") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_LABEL_ON_TOP); ac++;
|
||||
}
|
||||
else if (strcmp(name,"LayoutPixmapOnly") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonLayout,XmBUTTON_PIXMAP_ONLY); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TriggerAnywhere") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonTrigger,XmBUTTON_TRIGGER_ANYWHERE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TriggerEither") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonTrigger,XmBUTTON_TRIGGER_EITHER); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TriggerNeither") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonTrigger,XmBUTTON_TRIGGER_NEITHER); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TriggerLabel") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonTrigger,XmBUTTON_TRIGGER_LABEL); ac++;
|
||||
}
|
||||
else if (strcmp(name,"TriggerPixmap") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNbuttonTrigger,XmBUTTON_TRIGGER_PIXMAP); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentBeginning") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_BEGINNING); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentCenter") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_CENTER); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentEnd") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_END); ac++;
|
||||
}
|
||||
|
||||
if (strcmp(parent_name,"MarginLeft") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginRight") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginTop") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginBottom") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginAll") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Width") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNwidth,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Height") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNheight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ShadowThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"HighlightThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNhighlightThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"RaiseBorderThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNraiseBorderThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Spacing") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNspacing,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ArmOffset") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNarmOffset,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ChangePixmap") == 0)
|
||||
{
|
||||
change_pixmap(_button_target);
|
||||
}
|
||||
else if (strcmp(name,"ChangeLabel") == 0)
|
||||
{
|
||||
change_label(_button_target);
|
||||
}
|
||||
|
||||
if (ac)
|
||||
{
|
||||
XtSetValues(_button_target,av,ac);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
button_callback(Widget button,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeButtonCallbackStruct * data = (XfeButtonCallbackStruct *) call_data;
|
||||
String rname;
|
||||
|
||||
switch(data->reason)
|
||||
{
|
||||
case XmCR_ARM: rname = "Arm"; break;
|
||||
case XmCR_DISARM: rname = "Disarm"; break;
|
||||
case XmCR_ACTIVATE: rname = "Activate"; break;
|
||||
case XmCR_ENTER: rname = "Enter"; break;
|
||||
case XmCR_LEAVE: rname = "Leave"; break;
|
||||
case XmCR_RAISE: rname = "Raise"; break;
|
||||
case XmCR_LOWER: rname = "Lower"; break;
|
||||
case XmCR_SELECTION_CHANGED: rname = "SelectionChanged"; break;
|
||||
}
|
||||
|
||||
printf("%s(%s)\n",rname,XtName(button));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,82 @@
|
|||
! -*- 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.
|
||||
|
||||
|
||||
CascadeTest*MainForm.width: 500
|
||||
CascadeTest*MainForm.height: 400
|
||||
CascadeTest*MainForm.background: Gray70
|
||||
CascadeTest*MainForm.shadowThickness: 0
|
||||
CascadeTest*MainForm.shadowType: shadow_in
|
||||
|
||||
CascadeTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
CascadeTest*foreground: Black
|
||||
|
||||
|
||||
|
||||
|
||||
CascadeTest*ToolBar.bottomAttachment: attach_none
|
||||
CascadeTest*ToolBar.leftAttachment: attach_form
|
||||
CascadeTest*ToolBar.rightAttachment: attach_form
|
||||
CascadeTest*ToolBar.topAttachment: attach_form
|
||||
CascadeTest*ToolBar.leftOffset: 5
|
||||
CascadeTest*ToolBar.rightOffset: 5
|
||||
CascadeTest*ToolBar.topOffset: 5
|
||||
CascadeTest*ToolBar.shadowThickness: 1
|
||||
CascadeTest*ToolBar.shadowType: shadow_out
|
||||
CascadeTest*ToolBar.background: Gray70
|
||||
CascadeTest*ToolBar.separatorThickness: 50
|
||||
!CascadeTest*ToolBar.orientation: vertical
|
||||
|
||||
CascadeTest*ToolBar.orientation: horizontal
|
||||
|
||||
CascadeTest*ToolBar.spacing: 0
|
||||
|
||||
CascadeTest*ToolBar.usePreferredWidth: false
|
||||
CascadeTest*ToolBar.usePreferredHeight: true
|
||||
|
||||
CascadeTest*ToolBar.showLogo: true
|
||||
CascadeTest*ToolBar.forceWidth: true
|
||||
|
||||
|
||||
CascadeTest*XfeCascade*traversalOn: no
|
||||
CascadeTest*XfeCascade*highlightThickness: 0
|
||||
CascadeTest*XfeCascade*shadowThickness: 1
|
||||
CascadeTest*XfeCascade*highlightColor: Gray20
|
||||
CascadeTest*XfeCascade*background: Gray70
|
||||
CascadeTest*XfeCascade*buttonType: button_push
|
||||
CascadeTest*XfeCascade*labelRaisedColor: red
|
||||
CascadeTest*XfeCascade*labelAlignment: alignment_beginning
|
||||
CascadeTest*XfeCascade*buttonLayout: button_label_on_bottom
|
||||
CascadeTest*XfeCascade*shadowThickness: 1
|
||||
|
||||
|
||||
!CascadeTest*XfeCascade*XmRowColumn*background: red
|
||||
|
||||
|
||||
CascadeTest*XfeCascade*popupDelay: 500
|
||||
|
||||
|
||||
|
||||
CascadeTest*Two.leftOffset: 10
|
||||
CascadeTest*Two.topOffset: 10
|
||||
|
||||
|
||||
CascadeTest*Four.leftOffset: 10
|
||||
CascadeTest*Four.topOffset: 10
|
||||
|
||||
CascadeTest*Eight.leftOffset: 10
|
||||
CascadeTest*Eight.topOffset: 10
|
|
@ -0,0 +1,276 @@
|
|||
/* -*- 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: CascadeTest.c */
|
||||
/* Description: Test for XfeCascade widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static String names[] =
|
||||
{
|
||||
"One",
|
||||
"Two",
|
||||
"Three",
|
||||
"Four",
|
||||
"Five",
|
||||
"Six",
|
||||
"Seven",
|
||||
"Eight",
|
||||
"Nine",
|
||||
"Ten",
|
||||
};
|
||||
|
||||
static Cardinal delays[] =
|
||||
{
|
||||
0,
|
||||
200,
|
||||
0,
|
||||
0,
|
||||
300,
|
||||
1000,
|
||||
500,
|
||||
5000,
|
||||
400,
|
||||
0,
|
||||
};
|
||||
|
||||
static Cardinal counts[] =
|
||||
{
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
128,
|
||||
1,
|
||||
};
|
||||
|
||||
static void activate_callback (Widget,XtPointer,XtPointer);
|
||||
static void arm_callback (Widget,XtPointer,XtPointer);
|
||||
static void disarm_callback (Widget,XtPointer,XtPointer);
|
||||
static void popup_callback (Widget,XtPointer,XtPointer);
|
||||
static void popdown_callback (Widget,XtPointer,XtPointer);
|
||||
static void cascading_callback (Widget,XtPointer,XtPointer);
|
||||
static void populate_callback (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget create_button (Widget,String,Cardinal,Cardinal);
|
||||
static void add_items (Widget,Cardinal);
|
||||
static Widget add_item (Widget,String);
|
||||
static Widget get_sub_menu_id (Widget);
|
||||
|
||||
#define MAX_J 10
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget tool_bar;
|
||||
Cardinal i;
|
||||
|
||||
XfeAppCreateSimple("CascadeTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
tool_bar = XtVaCreateManagedWidget("ToolBar",
|
||||
xfeToolBarWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
for (i = 0; i < XtNumber(names); i++)
|
||||
{
|
||||
create_button(tool_bar,names[i],counts[i],delays[i]);
|
||||
}
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
activate_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeButtonCallbackStruct * cbs = (XfeButtonCallbackStruct *) call_data;
|
||||
|
||||
printf("Activate(%s)\n\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
arm_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeButtonCallbackStruct * cbs = (XfeButtonCallbackStruct *) call_data;
|
||||
|
||||
printf("Arm(%s)\n\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
disarm_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Disarm(%s)\n\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
popup_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Popup(%s)\n\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
popdown_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Popdown(%s)\n\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
populate_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget submenu;
|
||||
Cardinal num_children;
|
||||
|
||||
XtVaGetValues(w,XmNsubMenuId,&submenu,NULL);
|
||||
|
||||
assert( XfeIsAlive(submenu) );
|
||||
|
||||
XfeChildrenGet(submenu,NULL,&num_children);
|
||||
|
||||
|
||||
printf("Populate(%s) Have %d menu items\n\n",XtName(w),num_children);
|
||||
|
||||
if (strcmp(XtName(w),"One") == 0)
|
||||
{
|
||||
XfeCascadeDestroyChildren(w);
|
||||
/*XfeChildrenDestroy(submenu);*/
|
||||
|
||||
XSync(XtDisplay(w),True);
|
||||
|
||||
XmUpdateDisplay(w);
|
||||
|
||||
add_items(w,30);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
cascading_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget submenu;
|
||||
Cardinal num_children;
|
||||
|
||||
XtVaGetValues(w,XmNsubMenuId,&submenu,NULL);
|
||||
|
||||
assert( XfeIsAlive(submenu) );
|
||||
|
||||
XfeChildrenGet(submenu,NULL,&num_children);
|
||||
|
||||
printf("Cascading(%s) Have %d menu items\n\n",XtName(w),num_children);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_button(Widget parent,String name,Cardinal item_count,Cardinal delay)
|
||||
{
|
||||
Widget button;
|
||||
Cardinal i;
|
||||
char buf[100];
|
||||
|
||||
static String items[] =
|
||||
{
|
||||
"Item One",
|
||||
"Item Two",
|
||||
"Item Three",
|
||||
"Item Four",
|
||||
"Item Five",
|
||||
"Item Six",
|
||||
"Item Seven",
|
||||
"Item Eight",
|
||||
"Item Nine",
|
||||
"Item Ten",
|
||||
};
|
||||
|
||||
button = XtVaCreateManagedWidget(name,
|
||||
xfeCascadeWidgetClass,
|
||||
parent,
|
||||
XmNmappingDelay, delay,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(button,XmNactivateCallback,activate_callback,NULL);
|
||||
XtAddCallback(button,XmNarmCallback,arm_callback,NULL);
|
||||
XtAddCallback(button,XmNcascadingCallback,cascading_callback,NULL);
|
||||
XtAddCallback(button,XmNdisarmCallback,disarm_callback,NULL);
|
||||
XtAddCallback(button,XmNpopdownCallback,popdown_callback,NULL);
|
||||
XtAddCallback(button,XmNcascadingCallback,populate_callback,NULL);
|
||||
XtAddCallback(button,XmNpopupCallback,popup_callback,NULL);
|
||||
|
||||
add_items(button,item_count);
|
||||
|
||||
return button;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
add_items(Widget parent,Cardinal item_count)
|
||||
{
|
||||
|
||||
if (item_count > 0)
|
||||
{
|
||||
Cardinal i;
|
||||
char buf[100];
|
||||
Widget sub_menu_id = get_sub_menu_id(parent);
|
||||
|
||||
assert( XfeIsAlive(sub_menu_id) );
|
||||
|
||||
for (i = 0; i < item_count; i++)
|
||||
{
|
||||
sprintf(buf,"Item %-2d",i);
|
||||
|
||||
add_item(sub_menu_id,buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
add_item(Widget parent,String name)
|
||||
{
|
||||
Widget item;
|
||||
|
||||
item = XtVaCreateManagedWidget(name,
|
||||
/*xmPushButtonGadgetClass,*/
|
||||
xmPushButtonWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
|
||||
return item;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
get_sub_menu_id(Widget w)
|
||||
{
|
||||
Widget sub_menu_id;
|
||||
|
||||
XtVaGetValues(w,XmNsubMenuId,&sub_menu_id,NULL);
|
||||
|
||||
return sub_menu_id;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,377 @@
|
|||
/* -*- 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: ChromeTest.c */
|
||||
/* Description: Test for XfeChrome widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget create_chrome (Widget,String);
|
||||
static Widget create_url_bar (Widget,String);
|
||||
static Widget create_tool_box (Widget,String);
|
||||
static void menu_item_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static void chrome_toggle (Widget,XtPointer,XtPointer);
|
||||
static void chrome_flash (Widget,XtPointer,XtPointer);
|
||||
static void dash_board_toggle (Widget,XtPointer,XtPointer);
|
||||
static void dash_board_flash (Widget,XtPointer,XtPointer);
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec toggle_dash_board_items[] =
|
||||
{
|
||||
{ "ToolBar", XfeMENU_TOGGLE, dash_board_toggle },
|
||||
{ "StatusBar", XfeMENU_TOGGLE, dash_board_toggle },
|
||||
{ "ProgressBar", XfeMENU_TOGGLE, dash_board_toggle },
|
||||
{ "TaskBar", XfeMENU_TOGGLE, dash_board_toggle },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec flash_dash_board_items[] =
|
||||
{
|
||||
{ "ToolBar", XfeMENU_PUSH, dash_board_flash },
|
||||
{ "StatusBar", XfeMENU_PUSH, dash_board_flash },
|
||||
{ "ProgressBar", XfeMENU_PUSH, dash_board_flash },
|
||||
{ "TaskBar", XfeMENU_PUSH, dash_board_flash },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec file_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ "Save", XfeMENU_PUSH },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "Exit", XfeMENU_PUSH, XfeExitCallback },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec toggle_items[] =
|
||||
{
|
||||
{ "MenuBar", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "ToolBox", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "DashBoard", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "View", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "TopView", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "BottomView", XfeMENU_TOGGLE, chrome_toggle },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "DashBoard", XfeMENU_PANE, NULL, toggle_dash_board_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec flash_items[] =
|
||||
{
|
||||
{ "MenuBar", XfeMENU_PUSH, chrome_flash },
|
||||
{ "ToolBox", XfeMENU_PUSH, chrome_flash },
|
||||
{ "DashBoard", XfeMENU_PUSH, chrome_flash },
|
||||
{ "View", XfeMENU_PUSH, chrome_flash },
|
||||
{ "TopView", XfeMENU_PUSH, chrome_flash },
|
||||
{ "BottomView", XfeMENU_PUSH, chrome_flash },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "DashBoard", XfeMENU_PANE, NULL, flash_dash_board_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec options_items[] =
|
||||
{
|
||||
{ "One", XfeMENU_PUSH },
|
||||
{ "Two", XfeMENU_PUSH },
|
||||
{ "Three", XfeMENU_PUSH },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec help_items[] =
|
||||
{
|
||||
{ "Contents", XfeMENU_PUSH },
|
||||
{ "Search", XfeMENU_PUSH },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "About", XfeMENU_PUSH },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuPaneRec pane_items[] =
|
||||
{
|
||||
{ "File", file_items },
|
||||
{ "Toggle", toggle_items },
|
||||
{ "Flash", flash_items },
|
||||
{ "Options", options_items },
|
||||
{ "Help", help_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget _chrome = NULL;
|
||||
|
||||
static Widget _menu_bar = NULL;
|
||||
static Widget _tool_box = NULL;
|
||||
static Widget _dash_board = NULL;
|
||||
static Widget _bottom_view = NULL;
|
||||
static Widget _center_view = NULL;
|
||||
static Widget _left_view = NULL;
|
||||
static Widget _right_view = NULL;
|
||||
static Widget _top_view = NULL;
|
||||
|
||||
static Widget _personal_tool_bar = NULL;
|
||||
static Widget _tool_bar = NULL;
|
||||
static Widget _url_bar = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
|
||||
XfeAppCreateSimple("ChromeTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
_menu_bar = XfeMenuBarCreate(form,"MainMenuBar",pane_items,NULL,NULL,0);
|
||||
|
||||
_chrome = create_chrome(form,"Chrome");
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_url_bar(Widget parent,String name)
|
||||
{
|
||||
Widget url_bar;
|
||||
Widget url_form;
|
||||
Widget url_label;
|
||||
Widget url_text;
|
||||
Widget bookmark_button;
|
||||
|
||||
url_bar = XtVaCreateManagedWidget(name,
|
||||
xmFrameWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
|
||||
url_form = XtVaCreateManagedWidget("UrlForm",
|
||||
xmFormWidgetClass,
|
||||
url_bar,
|
||||
NULL);
|
||||
|
||||
bookmark_button = XtVaCreateManagedWidget("BookMarkButton",
|
||||
xfeButtonWidgetClass,
|
||||
url_form,
|
||||
XmNleftAttachment, XmATTACH_FORM,
|
||||
NULL);
|
||||
|
||||
|
||||
url_label = XtVaCreateManagedWidget("UrlLabel",
|
||||
xmLabelWidgetClass,
|
||||
url_form,
|
||||
XmNleftAttachment, XmATTACH_WIDGET,
|
||||
XmNleftWidget, bookmark_button,
|
||||
NULL);
|
||||
|
||||
#if 1
|
||||
url_text = XtVaCreateManagedWidget("UrlText",
|
||||
xmTextFieldWidgetClass,
|
||||
url_form,
|
||||
XmNleftAttachment, XmATTACH_WIDGET,
|
||||
XmNleftWidget, url_label,
|
||||
XmNrightAttachment, XmATTACH_FORM,
|
||||
NULL);
|
||||
#else
|
||||
url_text = XtVaCreateManagedWidget("UrlCombo",
|
||||
xfeFancyBoxWidgetClass,
|
||||
url_form,
|
||||
XmNleftAttachment, XmATTACH_WIDGET,
|
||||
XmNleftWidget, url_label,
|
||||
XmNrightAttachment, XmATTACH_FORM,
|
||||
NULL);
|
||||
#endif
|
||||
|
||||
return url_bar;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_tool_box(Widget parent,String name)
|
||||
{
|
||||
Widget tool_box;
|
||||
|
||||
tool_box = XfeCreateLoadedToolBox(parent,"ToolBox",NULL,0);
|
||||
|
||||
XtVaSetValues(tool_box,
|
||||
XmNusePreferredWidth, False,
|
||||
XmNusePreferredHeight, True,
|
||||
NULL);
|
||||
|
||||
return tool_box;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_chrome(Widget parent,String name)
|
||||
{
|
||||
Widget chrome;
|
||||
Widget menu_bar;
|
||||
Widget tool_bar_one;
|
||||
Widget url_bar;
|
||||
Widget tool_bar_two;
|
||||
|
||||
chrome = XtVaCreateManagedWidget(name,
|
||||
xfeChromeWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
|
||||
menu_bar = XfeMenuBarCreate(chrome,"MenuBar",pane_items,NULL,NULL,0);
|
||||
|
||||
XtSetSensitive(menu_bar,False);
|
||||
|
||||
_dash_board = XfeCreateLoadedDashBoard(
|
||||
chrome, /* pw */
|
||||
"DashBoard", /* name */
|
||||
"S", /* tool_prefix */
|
||||
XfeActivateCallback, /* tool_cb */
|
||||
3, /* tool_count */
|
||||
"T", /* tool_prefix */
|
||||
False, /* tool_large */
|
||||
XfeActivateCallback, /* tool_cb */
|
||||
4, /* tool_count */
|
||||
NULL, /* tool_bar_out */
|
||||
NULL, /* progress_bar_out */
|
||||
NULL, /* status_bar_out */
|
||||
NULL, /* task_bar_out */
|
||||
NULL, /* tool_items_out */
|
||||
NULL); /* task_items_out */
|
||||
|
||||
_tool_box = create_tool_box(chrome,"ToolBox");
|
||||
|
||||
tool_bar_one = XfeCreateLoadedToolBar(_tool_box,
|
||||
"ToolBarOne",
|
||||
"One",
|
||||
10,
|
||||
2,
|
||||
XfeArmCallback,
|
||||
XfeDisarmCallback,
|
||||
XfeActivateCallback,
|
||||
NULL);
|
||||
|
||||
url_bar = create_url_bar(_tool_box,"ToolBarTwo");
|
||||
|
||||
|
||||
tool_bar_two = XfeCreateLoadedToolBar(_tool_box,
|
||||
"ToolBarThree",
|
||||
"Two",
|
||||
10,
|
||||
2,
|
||||
XfeArmCallback,
|
||||
XfeDisarmCallback,
|
||||
XfeActivateCallback,
|
||||
NULL);
|
||||
|
||||
_center_view = XfeCreateFormAndButton(chrome,
|
||||
"CenterView",
|
||||
"Center",
|
||||
20,
|
||||
False,
|
||||
NULL,0);
|
||||
|
||||
_top_view = XfeCreateFormAndButton(chrome,
|
||||
"TopView",
|
||||
"Top",
|
||||
10,
|
||||
False,
|
||||
NULL,0);
|
||||
|
||||
_bottom_view = XfeCreateFormAndButton(chrome,
|
||||
"BottomView",
|
||||
"Bottom",
|
||||
10,
|
||||
False,
|
||||
NULL,0);
|
||||
|
||||
_left_view = XfeCreateFormAndButton(chrome,
|
||||
"LeftView",
|
||||
"Left",
|
||||
10,
|
||||
False,
|
||||
NULL,0);
|
||||
|
||||
_right_view = XfeCreateFormAndButton(chrome,
|
||||
"RightView",
|
||||
"Right",
|
||||
10,
|
||||
False,
|
||||
NULL,0);
|
||||
|
||||
return chrome;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
menu_item_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
int code = (int) client_data;
|
||||
|
||||
printf("code = %d\n",code);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
chrome_toggle(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
Widget tw = XfeDescendantFindByName(_chrome,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(tw))
|
||||
{
|
||||
XfeWidgetToggleManaged(tw);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
dash_board_toggle(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
Widget tw = XfeDescendantFindByName(_dash_board,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(tw))
|
||||
{
|
||||
XfeWidgetToggleManaged(tw);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
chrome_flash(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
Widget tw = XfeDescendantFindByName(_chrome,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(tw))
|
||||
{
|
||||
XfeWidgetFlash(tw,400,3);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
dash_board_flash(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
Widget tw = XfeDescendantFindByName(_dash_board,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(tw))
|
||||
{
|
||||
XfeWidgetFlash(tw,400,3);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,243 @@
|
|||
/* -*- 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: ComboBoxTest.c */
|
||||
/* Description: Test for XfeComboBox widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
#include <Xfe/ListUtilP.h>
|
||||
|
||||
static void activate_callback (Widget,XtPointer,XtPointer);
|
||||
static void arm_callback (Widget,XtPointer,XtPointer);
|
||||
static void disarm_callback (Widget,XtPointer,XtPointer);
|
||||
|
||||
static void combo_add_items (Widget,String *,Cardinal);
|
||||
static void list_add_items (Widget,String *,Cardinal);
|
||||
|
||||
static String items1[] =
|
||||
{
|
||||
"Item One",
|
||||
"Item Two",
|
||||
"Item Three",
|
||||
"Item Four",
|
||||
"Item Five",
|
||||
"Item Six",
|
||||
"Item Seven",
|
||||
"Item Eight",
|
||||
"Item Nine",
|
||||
"Item Ten",
|
||||
"Item Eleven",
|
||||
"Item Twelve",
|
||||
};
|
||||
|
||||
static String items2[] =
|
||||
{
|
||||
"Red",
|
||||
"Green",
|
||||
"Blue",
|
||||
"Brown",
|
||||
"Orange",
|
||||
"Cyan",
|
||||
"Magenta",
|
||||
"Black",
|
||||
"White",
|
||||
"Yellow"
|
||||
};
|
||||
|
||||
static String items3[] =
|
||||
{
|
||||
"North",
|
||||
"South",
|
||||
"East",
|
||||
"West",
|
||||
"South East",
|
||||
"South West",
|
||||
"North East",
|
||||
"North West"
|
||||
};
|
||||
|
||||
static String items4[] =
|
||||
{
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
};
|
||||
|
||||
#define num_items1 XtNumber(items1)
|
||||
#define num_items2 XtNumber(items2)
|
||||
#define num_items3 XtNumber(items3)
|
||||
#define num_items4 XtNumber(items4)
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget cb[4];
|
||||
Widget icon;
|
||||
Widget list;
|
||||
|
||||
XfeAppCreateSimple("ComboBoxTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
cb[0] = XtVaCreateManagedWidget("ComboBox1",
|
||||
xfeComboBoxWidgetClass,
|
||||
form,
|
||||
XmNcomboBoxType,XmCOMBO_BOX_EDITABLE,
|
||||
NULL);
|
||||
|
||||
cb[1] = XtVaCreateManagedWidget("ComboBox2",
|
||||
xfeComboBoxWidgetClass,
|
||||
form,
|
||||
XmNcomboBoxType,XmCOMBO_BOX_READ_ONLY,
|
||||
NULL);
|
||||
|
||||
cb[2] = XtVaCreateManagedWidget("ComboBox3",
|
||||
xfeFancyBoxWidgetClass,
|
||||
form,
|
||||
XmNcomboBoxType,XmCOMBO_BOX_EDITABLE,
|
||||
NULL);
|
||||
|
||||
cb[3] = XtVaCreateManagedWidget("ComboBox4",
|
||||
xfeFancyBoxWidgetClass,
|
||||
form,
|
||||
XmNcomboBoxType,XmCOMBO_BOX_READ_ONLY,
|
||||
NULL);
|
||||
|
||||
icon = XtVaCreateManagedWidget("IC",
|
||||
xfeButtonWidgetClass,
|
||||
cb[2],
|
||||
XmNbackground, XfeBackground(cb[2]),
|
||||
XmNforeground, XfeForeground(cb[2]),
|
||||
NULL);
|
||||
|
||||
assert( XfeIsAlive(icon) );
|
||||
|
||||
XtVaSetValues(
|
||||
icon,
|
||||
XmNpixmap, XfeGetPixmap(icon,"proxy"),
|
||||
XmNpixmapMask, XfeGetMask(icon,"proxy"),
|
||||
XmNraisedPixmap, XfeGetPixmap(icon,"proxy_raised"),
|
||||
XmNraisedPixmapMask, XfeGetMask(icon,"proxy_raised"),
|
||||
XmNbuttonLayout, XmBUTTON_PIXMAP_ONLY,
|
||||
XmNfillOnEnter, False,
|
||||
XmNfillOnArm, False,
|
||||
XmNraiseOnEnter, True,
|
||||
XmNshadowThickness, 0,
|
||||
XmNraiseBorderThickness, 0,
|
||||
NULL);
|
||||
|
||||
|
||||
list = XmCreateScrolledList(form,"List",NULL,0);
|
||||
|
||||
/* _XfeXmListAccess(list,BaseX) += 10; */
|
||||
|
||||
/* lw->list.BaseX = (Position )lw->list.margin_width + */
|
||||
|
||||
XtManageChild(list);
|
||||
|
||||
combo_add_items(cb[0],items1,num_items1);
|
||||
combo_add_items(cb[1],items2,num_items2);
|
||||
combo_add_items(cb[2],items3,num_items3);
|
||||
combo_add_items(cb[3],items4,num_items4);
|
||||
|
||||
list_add_items(list,items1,num_items1);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
combo_add_items(Widget w,String * items,Cardinal n)
|
||||
{
|
||||
XmString * table = NULL;
|
||||
Cardinal i;
|
||||
|
||||
assert( XfeIsAlive(w) );
|
||||
assert( XfeIsComboBox(w) );
|
||||
assert( items != NULL );
|
||||
assert( n > 0 );
|
||||
|
||||
table = XfeGetXmStringTable(items,n);
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
XfeComboBoxAddItem(w,table[i],0);
|
||||
}
|
||||
|
||||
XfeFreeXmStringTable(table,n);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
list_add_items(Widget w,String * items,Cardinal n)
|
||||
{
|
||||
XmString * table = NULL;
|
||||
Cardinal i;
|
||||
|
||||
assert( XfeIsAlive(w) );
|
||||
assert( XmIsList(w) );
|
||||
assert( items != NULL );
|
||||
assert( n > 0 );
|
||||
|
||||
table = XfeGetXmStringTable(items,n);
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
XmListAddItem(w,table[i],0);
|
||||
}
|
||||
|
||||
XfeFreeXmStringTable(table,n);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
activate_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Activate(%s)\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
arm_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Arm(%s)\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
disarm_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
printf("Disarm(%s)\n",XtName(w));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,178 @@
|
|||
/* -*- 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: DashBoardTest.c */
|
||||
/* Description: Test for XfeDashBoard widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget create_frame_shell (Widget,String);
|
||||
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget frame1;
|
||||
Widget frame2;
|
||||
Widget frame3;
|
||||
Widget frame4;
|
||||
|
||||
XfeAppCreate("DashBoardTest",&argc,argv);
|
||||
|
||||
frame1 = create_frame_shell(XfeAppShell(),"Frame1");
|
||||
|
||||
frame2 = create_frame_shell(XfeAppShell(),"Frame2");
|
||||
|
||||
frame3 = create_frame_shell(XfeAppShell(),"Frame3");
|
||||
|
||||
frame4 = create_frame_shell(XfeAppShell(),"Frame4");
|
||||
|
||||
XtPopup(frame1,XtGrabNone);
|
||||
|
||||
XtPopup(frame2,XtGrabNone);
|
||||
|
||||
XtPopup(frame3,XtGrabNone);
|
||||
|
||||
XtPopup(frame4,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_frame_shell(Widget parent,String name)
|
||||
{
|
||||
Widget frame;
|
||||
Widget form;
|
||||
Widget docked_task_bar;
|
||||
Widget dash_board;
|
||||
|
||||
static Widget floating_shell = NULL;
|
||||
static Boolean first_instance = True;
|
||||
|
||||
frame = XtVaCreatePopupShell(name,
|
||||
xfeFrameShellWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
|
||||
XfeAddEditresSupport(frame);
|
||||
|
||||
form = XtVaCreateManagedWidget("Form",
|
||||
xmFormWidgetClass,
|
||||
frame,
|
||||
NULL);
|
||||
|
||||
if (first_instance)
|
||||
{
|
||||
int mask;
|
||||
int func;
|
||||
|
||||
|
||||
Widget floating_task_bar;
|
||||
|
||||
first_instance = False;
|
||||
|
||||
mask = MWM_DECOR_BORDER | MWM_DECOR_TITLE | MWM_DECOR_MENU;
|
||||
func = MWM_FUNC_CLOSE | MWM_FUNC_MOVE;
|
||||
|
||||
floating_shell =
|
||||
XtVaCreatePopupShell("FloatingShell",
|
||||
xmDialogShellWidgetClass,
|
||||
XfeAncestorFindApplicationShell(parent),
|
||||
XmNvisual, XfeVisual(parent),
|
||||
XmNcolormap, XfeColormap(parent),
|
||||
XmNdepth, XfeDepth(parent),
|
||||
XmNmwmDecorations, mask,
|
||||
XmNmwmFunctions, func,
|
||||
XmNallowShellResize, True,
|
||||
XmNdeleteResponse, XmDO_NOTHING,
|
||||
NULL);
|
||||
|
||||
|
||||
floating_task_bar = XfeCreateLoadedTaskBar(floating_shell,
|
||||
"FloatingTaskBar",
|
||||
True,
|
||||
"Task_",
|
||||
NULL,
|
||||
4,
|
||||
NULL);
|
||||
}
|
||||
|
||||
dash_board = XtVaCreateManagedWidget("DashBoard",
|
||||
xfeDashBoardWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(dash_board,XmNdockCallback,XfeDockCallback,NULL);
|
||||
XtAddCallback(dash_board,XmNundockCallback,XfeUndockCallback,NULL);
|
||||
|
||||
XtVaSetValues(dash_board,
|
||||
XmNfloatingShell, floating_shell,
|
||||
NULL);
|
||||
|
||||
/* Create the progress bar */
|
||||
XtVaCreateManagedWidget("ProgressBar",
|
||||
xfeProgressBarWidgetClass,
|
||||
dash_board,
|
||||
XmNusePreferredHeight, True,
|
||||
XmNusePreferredWidth, True,
|
||||
XmNshadowThickness, 1,
|
||||
XmNshadowType, XmSHADOW_IN,
|
||||
XmNhighlightThickness, 0,
|
||||
XmNtraversalOn, False,
|
||||
NULL);
|
||||
|
||||
/* Create the status bar */
|
||||
XtVaCreateWidget("StatusBar",
|
||||
xfeLabelWidgetClass,
|
||||
dash_board,
|
||||
XmNusePreferredHeight, False,
|
||||
XmNusePreferredWidth, True,
|
||||
XmNshadowThickness, 2,
|
||||
XmNshadowType, XmSHADOW_IN,
|
||||
XmNhighlightThickness, 0,
|
||||
XmNtraversalOn, False,
|
||||
NULL);
|
||||
|
||||
/* Create the task bar */
|
||||
docked_task_bar = XfeCreateLoadedTaskBar(dash_board,
|
||||
"DockedTaskBar",
|
||||
False,
|
||||
"T",
|
||||
NULL,
|
||||
4,
|
||||
NULL);
|
||||
|
||||
XtVaSetValues(docked_task_bar,
|
||||
XmNorientation, XmHORIZONTAL,
|
||||
XmNusePreferredWidth, True,
|
||||
XmNusePreferredHeight, True,
|
||||
XmNhighlightThickness, 0,
|
||||
XmNshadowThickness, 0,
|
||||
XmNtraversalOn, False,
|
||||
NULL);
|
||||
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,75 @@
|
|||
! -*- 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.
|
||||
|
||||
|
||||
FontChooserTest*MainForm.width: 800
|
||||
FontChooserTest*MainForm.height: 400
|
||||
FontChooserTest*MainForm.background: Gray70
|
||||
FontChooserTest*MainForm.shadowThickness: 0
|
||||
FontChooserTest*MainForm.shadowType: shadow_in
|
||||
|
||||
FontChooserTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
FontChooserTest*foreground: Black
|
||||
|
||||
|
||||
FontChooserTest*Row.adjustLast: False
|
||||
|
||||
FontChooserTest*Row.orientation: horizontal
|
||||
FontChooserTest*Row.numColumns: 6
|
||||
FontChooserTest*Row.packing: pack_tight
|
||||
|
||||
FontChooserTest*XfeLabel*traversalOn: False
|
||||
FontChooserTest*XfeLabel*highlightThickness: 0
|
||||
FontChooserTest*XfeLabel*highlightColor: Gray20
|
||||
FontChooserTest*XfeLabel*background: Gray70
|
||||
FontChooserTest*XfeLabel*labelType: label_raise
|
||||
FontChooserTest*XfeLabel*raiseForeground: blue
|
||||
FontChooserTest*XfeLabel*raiseBorderThickness: 1
|
||||
FontChooserTest*XfeLabel*highlightColor: black
|
||||
|
||||
FontChooserTest*XfeLabel*labelLayout: label_label_on_bottom
|
||||
|
||||
!FontChooserTest*FontChooser.rulesType: rules_date
|
||||
FontChooserTest*FontChooser.rulesType: rules_option
|
||||
!FontChooserTest*FontChooser.rulesType: rules_text
|
||||
|
||||
|
||||
FontChooserTest*FontChooser.InputDateLabel.labelString: mm/dd/yy
|
||||
FontChooserTest*FontChooser.ArticleLabel.labelString: the
|
||||
|
||||
FontChooserTest*FontChooser*XmRowColumn.marginWidth: 0
|
||||
FontChooserTest*FontChooser*XmRowColumn.marginHeight: 0
|
||||
FontChooserTest*FontChooser*XmRowColumn.spacing: 0
|
||||
|
||||
|
||||
FontChooserTest*FontChooser*spacing: 0
|
||||
|
||||
FontChooserTest*FontChooser.leftAttachment: attach_form
|
||||
FontChooserTest*FontChooser.rightAttachment: attach_none
|
||||
FontChooserTest*FontChooser.topAttachment: attach_form
|
||||
FontChooserTest*FontChooser.bottomAttachment: attach_none
|
||||
FontChooserTest*FontChooser.leftOffset: 5
|
||||
FontChooserTest*FontChooser.rightOffset: 5
|
||||
FontChooserTest*FontChooser.topOffset: 5
|
||||
FontChooserTest*FontChooser.bottomOffset: 5
|
||||
|
||||
FontChooserTest*FontChooser.matchSubMenuWidth: true
|
||||
FontChooserTest*FontChooser.buttonLayout: button_label_only
|
||||
FontChooserTest*FontChooser.labelAlignment: alignment_end
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
/* -*- 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: FontChooserTest.c */
|
||||
/* Description: Test for XfeFontChooser widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static String font_names[] =
|
||||
{
|
||||
"-adobe-courier-medium-r-normal--20-140-100-100-m-110-iso8859-1",
|
||||
"-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1",
|
||||
"-adobe-new century schoolbook-medium-r-normal--20-140-100-100-p-103-iso8859-1",
|
||||
"-adobe-symbol-medium-r-normal--20-140-100-100-p-107-adobe-fontspecific",
|
||||
"-adobe-times-medium-r-normal--20-140-100-100-p-96-iso8859-1",
|
||||
"-b&h-lucida-medium-r-normal-sans-20-140-100-100-p-114-iso8859-1",
|
||||
"-b&h-lucidabright-medium-r-normal--20-140-100-100-p-114-iso8859-1",
|
||||
"-b&h-lucidatypewriter-medium-r-normal-sans-20-140-100-100-m-120-iso8859-1",
|
||||
"-misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1",
|
||||
};
|
||||
|
||||
static String label_names[] =
|
||||
{
|
||||
"Courier",
|
||||
"Helvetica",
|
||||
"New Century Schoolbook",
|
||||
"Symbol",
|
||||
"Times",
|
||||
"Lucida",
|
||||
"Lucidabright",
|
||||
"Lucidatypewriter",
|
||||
"Fixed",
|
||||
};
|
||||
|
||||
#define num_font_names XtNumber(font_names)
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget font_chooser;
|
||||
XmString * xm_string_table;
|
||||
XmFontList * font_list_table;
|
||||
|
||||
XfeAppCreateSimple("FontChooserTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
xm_string_table = XfeGetXmStringTable(label_names,num_font_names);
|
||||
|
||||
font_list_table = XfeGetFontListTable(font_names,num_font_names);
|
||||
|
||||
font_chooser = XtVaCreateManagedWidget("FontChooser",
|
||||
xfeFontChooserWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtVaSetValues(font_chooser,
|
||||
XmNnumFontItems, num_font_names,
|
||||
XmNfontItemLabels, xm_string_table,
|
||||
XmNfontItemFonts, font_list_table,
|
||||
NULL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,66 @@
|
|||
! -*- 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.
|
||||
|
||||
|
||||
FrameShellTest*Control*MainForm.width: 500
|
||||
FrameShellTest*Control*MainForm.height: 400
|
||||
FrameShellTest*Control*MainForm.shadowThickness: 1
|
||||
FrameShellTest*Control*MainForm.background: gray70
|
||||
|
||||
FrameShellTest*Control*ToolBar*background: gray65
|
||||
FrameShellTest*Control*ToolBar.shadowThickness: 1
|
||||
|
||||
FrameShellTest*Control*ToolBar.topAttachment: attach_form
|
||||
FrameShellTest*Control*ToolBar.bottomAttachment: attach_none
|
||||
FrameShellTest*Control*ToolBar.leftAttachment: attach_form
|
||||
FrameShellTest*Control*ToolBar.rightAttachment: attach_form
|
||||
FrameShellTest*Control*ToolBar.topOffset: 1
|
||||
FrameShellTest*Control*ToolBar.leftOffset: 1
|
||||
FrameShellTest*Control*ToolBar.rightOffset: 1
|
||||
FrameShellTest*Control*ToolBar.usePreferredWidth: false
|
||||
|
||||
FrameShellTest*Control*ToolBar.marginTop: 2
|
||||
FrameShellTest*Control*ToolBar.marginBottom: 2
|
||||
FrameShellTest*Control*ToolBar.marginLeft: 2
|
||||
FrameShellTest*Control*ToolBar.marginRight: 2
|
||||
|
||||
FrameShellTest*Control*ToolBar*marginTop: 2
|
||||
FrameShellTest*Control*ToolBar*marginBottom: 2
|
||||
FrameShellTest*Control*ToolBar*marginLeft: 2
|
||||
FrameShellTest*Control*ToolBar*marginRight: 2
|
||||
FrameShellTest*Control*ToolBar*fillOnRaise: true
|
||||
FrameShellTest*Control*ToolBar*fillOnArm: true
|
||||
|
||||
FrameShellTest*Control*ListSW*background: gray65
|
||||
FrameShellTest*Control*ListSW.topAttachment: attach_widget
|
||||
FrameShellTest*Control*ListSW.bottomAttachment: attach_form
|
||||
FrameShellTest*Control*ListSW.leftAttachment: attach_form
|
||||
FrameShellTest*Control*ListSW.rightAttachment: attach_form
|
||||
FrameShellTest*Control*ListSW.topWidget: ToolBar
|
||||
FrameShellTest*Control*ListSW.topOffset: 1
|
||||
FrameShellTest*Control*ListSW.bottomOffset: 1
|
||||
FrameShellTest*Control*ListSW.leftOffset: 1
|
||||
FrameShellTest*Control*ListSW.rightOffset: 1
|
||||
|
||||
FrameShellTest*Control*ListSW.traversalOn: false
|
||||
FrameShellTest*Control*ListSW.highlightThickness: 0
|
||||
FrameShellTest*Control*ListSW.shadowThickness: 1
|
||||
|
||||
|
||||
FrameShellTest*Dummy*MainForm.width: 500
|
||||
FrameShellTest*Dummy*MainForm.height: 400
|
||||
|
|
@ -0,0 +1,277 @@
|
|||
/* -*- 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: FrameShellTest.c */
|
||||
/* Description: Test for XfeFrameShell widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget create_control (String);
|
||||
static Widget create_dummy (String);
|
||||
|
||||
static void first_map_cb (Widget,XtPointer,XtPointer);
|
||||
static void map_cb (Widget,XtPointer,XtPointer);
|
||||
static void unmap_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static void track_cb (Widget,XtPointer,XtPointer);
|
||||
static void operation_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static void message_output (String);
|
||||
static String message_create (Widget,String);
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec file_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ "Save", XfeMENU_PUSH },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "Exit", XfeMENU_PUSH, XfeExitCallback },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec track_items[] =
|
||||
{
|
||||
{ "Editres", XfeMENU_TOGGLE, track_cb },
|
||||
{ "DeleteWindow", XfeMENU_TOGGLE, track_cb },
|
||||
{ "SaveYourself", XfeMENU_TOGGLE, track_cb },
|
||||
{ "Mapping", XfeMENU_TOGGLE, track_cb },
|
||||
{ "Position", XfeMENU_TOGGLE, track_cb },
|
||||
{ "Size", XfeMENU_TOGGLE, track_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec operations_items[] =
|
||||
{
|
||||
{ "Popup", XfeMENU_PUSH, operation_cb },
|
||||
{ "Popdown", XfeMENU_PUSH, operation_cb },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "Map", XfeMENU_PUSH, operation_cb },
|
||||
{ "Unmap", XfeMENU_PUSH, operation_cb },
|
||||
{ "Realize", XfeMENU_PUSH, operation_cb },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "Raise", XfeMENU_PUSH, operation_cb },
|
||||
{ "Lower", XfeMENU_PUSH, operation_cb },
|
||||
{ "Sep", XfeMENU_SEP },
|
||||
{ "Destroy", XfeMENU_PUSH, operation_cb },
|
||||
{ "Create", XfeMENU_PUSH, operation_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuPaneRec pane_items[] =
|
||||
{
|
||||
{ "File", file_items },
|
||||
{ "Track", track_items },
|
||||
{ "Operations", operations_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static Widget _control = NULL;
|
||||
static Widget _dummy = NULL;
|
||||
static Widget _tool_bar = NULL;
|
||||
static Widget _log_list = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
XfeAppCreate("FrameShellTest",&argc,argv);
|
||||
|
||||
_control = create_control("Control");
|
||||
|
||||
_dummy = create_dummy("Dummy");
|
||||
|
||||
_tool_bar = XfeDescendantFindByName(_control,"ToolBar",XfeFIND_ANY,False);
|
||||
|
||||
_log_list = XfeDescendantFindByName(_control,"List",XfeFIND_ANY,False);
|
||||
|
||||
/* XtPopup(_dummy,XtGrabNone); */
|
||||
|
||||
XtPopup(_control,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_control(String name)
|
||||
{
|
||||
Widget frame = NULL;
|
||||
Widget form = NULL;
|
||||
Widget tool_bar;
|
||||
Widget list;
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
|
||||
XtSetArg(av[ac],XmNtrackEditres,False); ac++;
|
||||
|
||||
frame = XfeFrameCreate(name,av,ac);
|
||||
|
||||
form = XfeDescendantFindByName(frame,"MainForm",XfeFIND_ANY,False);
|
||||
|
||||
tool_bar = XfeToolBarCreate(form,"ToolBar",pane_items,NULL);
|
||||
|
||||
list = XmCreateScrolledList(form,"List",NULL,0);
|
||||
|
||||
XtManageChild(list);
|
||||
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_dummy(String name)
|
||||
{
|
||||
Widget frame = NULL;
|
||||
Widget form = NULL;
|
||||
|
||||
frame = XfeFrameCreate(name,NULL,0);
|
||||
|
||||
form = XfeDescendantFindByName(frame,"MainForm",XfeFIND_ANY,False);
|
||||
|
||||
XtAddCallback(frame,XmNfirstMapCallback,first_map_cb,NULL);
|
||||
XtAddCallback(frame,XmNmapCallback,map_cb,NULL);
|
||||
XtAddCallback(frame,XmNunmapCallback,unmap_cb,NULL);
|
||||
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
first_map_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
message_output(message_create(w,"FirstMap"));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
map_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
message_output(message_create(w,"Map"));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
unmap_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
message_output(message_create(w,"Unmap"));
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
track_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
|
||||
if (!XfeIsAlive(_dummy))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(name,"Editres") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_dummy,XmNtrackEditres);
|
||||
}
|
||||
else if (strcmp(name,"DeleteWindow") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_dummy,XmNtrackDeleteWindow);
|
||||
}
|
||||
else if (strcmp(name,"Mapping") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(_dummy,XmNtrackMapping);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
operation_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
String name = XtName(w);
|
||||
|
||||
if (!XfeIsAlive(_dummy))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(name,"Popup") == 0)
|
||||
{
|
||||
XtPopup(_dummy,XtGrabNone);
|
||||
}
|
||||
else if (strcmp(name,"Popdown") == 0)
|
||||
{
|
||||
XtPopdown(_dummy);
|
||||
}
|
||||
else if (strcmp(name,"Map") == 0)
|
||||
{
|
||||
XtMapWidget(_dummy);
|
||||
}
|
||||
else if (strcmp(name,"Unmap") == 0)
|
||||
{
|
||||
XtUnmapWidget(_dummy);
|
||||
}
|
||||
else if (strcmp(name,"Realize") == 0)
|
||||
{
|
||||
XtRealizeWidget(_dummy);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
message_output(String message)
|
||||
{
|
||||
XmString item;
|
||||
|
||||
assert( XfeIsAlive(_log_list) );
|
||||
|
||||
if (!message)
|
||||
{
|
||||
message = "NULL";
|
||||
}
|
||||
|
||||
item = XmStringCreate(message,XmFONTLIST_DEFAULT_TAG);
|
||||
|
||||
XmListAddItem(_log_list,item,0);
|
||||
|
||||
XmStringFree(item);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static String
|
||||
message_create(Widget w,String message)
|
||||
{
|
||||
String name;
|
||||
|
||||
static char buf[4096];
|
||||
static int count = 1;
|
||||
|
||||
if (XfeIsAlive(w))
|
||||
{
|
||||
name = XtName(w);
|
||||
}
|
||||
else
|
||||
{
|
||||
name = "NULL";
|
||||
}
|
||||
|
||||
sprintf(buf,"%3d. %s(%s)",count,message,name);
|
||||
|
||||
count++;
|
||||
|
||||
return buf;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,59 @@
|
|||
! -*- 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.
|
||||
|
||||
|
||||
LabelTest*MainForm.width: 800
|
||||
LabelTest*MainForm.height: 400
|
||||
LabelTest*MainForm.background: Gray70
|
||||
LabelTest*MainForm.shadowThickness: 0
|
||||
LabelTest*MainForm.shadowType: shadow_in
|
||||
|
||||
LabelTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
LabelTest*labelFontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
LabelTest*foreground: Black
|
||||
|
||||
|
||||
LabelTest*Row.adjustLast: False
|
||||
|
||||
LabelTest*Row.orientation: horizontal
|
||||
LabelTest*Row.numColumns: 6
|
||||
LabelTest*Row.packing: pack_tight
|
||||
|
||||
LabelTest*XfeLabel*traversalOn: False
|
||||
LabelTest*XfeLabel*highlightThickness: 0
|
||||
LabelTest*XfeLabel*highlightColor: Gray20
|
||||
LabelTest*XfeLabel*background: Gray70
|
||||
LabelTest*XfeLabel*labelType: label_raise
|
||||
LabelTest*XfeLabel*raiseForeground: blue
|
||||
LabelTest*XfeLabel*raiseBorderThickness: 1
|
||||
LabelTest*XfeLabel*highlightColor: black
|
||||
!LabelTest*XfeLabel*fillOnRaise: false
|
||||
!LabelTest*XfeLabel*fillOnArm: false
|
||||
!LabelTest*XfeLabel*bufferType: buffer_private
|
||||
!LabelTest*XfeLabel*labelLayout: label_label_only
|
||||
|
||||
LabelTest*XfeLabel*labelLayout: label_label_on_bottom
|
||||
|
||||
|
||||
LabelTest*Label.x: 100
|
||||
LabelTest*Label.y: 100
|
||||
|
||||
!LabelTest*Label.width: 100
|
||||
!LabelTest*Label.height: 100
|
||||
|
||||
!LabelTest*Label.usePreferredWidth: false
|
||||
!LabelTest*Label.usePreferredHeight: false
|
|
@ -0,0 +1,52 @@
|
|||
/* -*- 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: LabelTest.c */
|
||||
/* Description: Test for XfeLabel widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget label;
|
||||
|
||||
XfeAppCreateSimple("LabelTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
label = XtVaCreateManagedWidget("Label",
|
||||
xfeLabelWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(label,XmNselectionChangedCallback,XfeLabelSelectionChangedCallback,NULL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,47 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
Logot*MainForm.width: 500
|
||||
LogoTest*MainForm.height: 400
|
||||
LogoTest*MainForm.background: Gray70
|
||||
LogoTest*MainForm.shadowThickness: 0
|
||||
LogoTest*MainForm.shadowType: shadow_in
|
||||
|
||||
LogoTest*Logo.x: 50
|
||||
LogoTest*Logo.y: 50
|
||||
|
||||
LogoTest*Logo.traversalOn: False
|
||||
LogoTest*Logo.highlightThickness: 0
|
||||
LogoTest*Logo.shadowThickness: 1
|
||||
LogoTest*Logo.highlightColor: Gray20
|
||||
LogoTest*Logo.background: Gray70
|
||||
LogoTest*Logo.highlightColor: black
|
||||
|
||||
LogoTest*ToolBar.x: 50
|
||||
LogoTest*ToolBar.y: 300
|
||||
|
||||
LogoTest*Logo.bufferType: buffer_shared
|
||||
|
||||
LogoTest*ProgressBar.x: 50
|
||||
LogoTest*ProgressBar.y: 150
|
||||
LogoTest*ProgressBar.background: Gray70
|
||||
LogoTest*ProgressBar.width: 200
|
||||
LogoTest*ProgressBar.usePreferredWidth: False
|
||||
LogoTest*ProgressBar.barColor: CadetBlue
|
||||
LogoTest*ProgressBar.cylonWidth: 40
|
||||
LogoTest*ProgressBar.cylonInterval: 100
|
||||
LogoTest*ProgressBar.cylonOffset: 2
|
|
@ -0,0 +1,243 @@
|
|||
/* -*- 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: LogoTest.c */
|
||||
/* Description: Test for XfeLogo widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static void animation_callback (Widget,XtPointer,XtPointer);
|
||||
static void init_animations (void);
|
||||
static void set_animation (Cardinal);
|
||||
|
||||
static void logo_activate_callback (Widget,XtPointer,XtPointer);
|
||||
static void start_callback (Widget,XtPointer,XtPointer);
|
||||
static void stop_callback (Widget,XtPointer,XtPointer);
|
||||
static void reset_callback (Widget,XtPointer,XtPointer);
|
||||
static void tick_callback (Widget,XtPointer,XtPointer);
|
||||
|
||||
#define NUM_ANIMATIONS 4
|
||||
#define ANIMATION_INTERVAL 100
|
||||
|
||||
static XfePixmapTable _animation_pixmaps[NUM_ANIMATIONS];
|
||||
static Cardinal _animation_frame_counts[NUM_ANIMATIONS];
|
||||
static Cardinal _current_animation = 0;
|
||||
static String _animation_names[NUM_ANIMATIONS] =
|
||||
{
|
||||
"Transparent Large",
|
||||
"Transparent Small",
|
||||
"Main Large",
|
||||
"Main Small"
|
||||
};
|
||||
|
||||
static Widget _logo = NULL;
|
||||
static Widget _progress_bar = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget tool_bar;
|
||||
Widget start;
|
||||
Widget stop;
|
||||
Widget reset;
|
||||
Widget tick;
|
||||
|
||||
XfeAppCreateSimple("LogoTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
_logo = XtVaCreateManagedWidget("Logo",
|
||||
xfeLogoWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
_progress_bar = XtVaCreateManagedWidget("ProgressBar",
|
||||
xfeProgressBarWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
tool_bar = XtVaCreateManagedWidget("ToolBar",
|
||||
xfeToolBarWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
start = XtVaCreateManagedWidget("Start",
|
||||
xfeButtonWidgetClass,
|
||||
tool_bar,
|
||||
NULL);
|
||||
|
||||
stop = XtVaCreateManagedWidget("Stop",
|
||||
xfeButtonWidgetClass,
|
||||
tool_bar,
|
||||
NULL);
|
||||
|
||||
tick = XtVaCreateManagedWidget("Tick",
|
||||
xfeButtonWidgetClass,
|
||||
tool_bar,
|
||||
NULL);
|
||||
|
||||
reset = XtVaCreateManagedWidget("Reset",
|
||||
xfeButtonWidgetClass,
|
||||
tool_bar,
|
||||
NULL);
|
||||
|
||||
|
||||
init_animations();
|
||||
|
||||
XtVaSetValues(_logo,
|
||||
XmNbuttonLayout, XmBUTTON_LABEL_ON_BOTTOM,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(_logo,XmNactivateCallback,logo_activate_callback,NULL);
|
||||
XtAddCallback(_logo,XmNanimationCallback,animation_callback,NULL);
|
||||
|
||||
XtAddCallback(start,XmNactivateCallback,start_callback,NULL);
|
||||
XtAddCallback(stop,XmNactivateCallback,stop_callback,NULL);
|
||||
XtAddCallback(reset,XmNactivateCallback,reset_callback,NULL);
|
||||
XtAddCallback(tick,XmNactivateCallback,tick_callback,NULL);
|
||||
|
||||
set_animation(0);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
set_animation(Cardinal i)
|
||||
{
|
||||
assert( i < NUM_ANIMATIONS );
|
||||
|
||||
assert( _animation_pixmaps != NULL );
|
||||
assert( _animation_pixmaps[i] != NULL );
|
||||
assert( _animation_frame_counts != NULL );
|
||||
|
||||
XtVaSetValues(_logo,
|
||||
XmNanimationPixmaps, _animation_pixmaps[i],
|
||||
XmNnumAnimationPixmaps, _animation_frame_counts[i],
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
animation_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Cardinal i;
|
||||
char buf[1024];
|
||||
|
||||
XtVaGetValues(_logo,XmNcurrentPixmapIndex,&i,NULL);
|
||||
|
||||
sprintf(buf,"%s\n%d",_animation_names[_current_animation],i);
|
||||
|
||||
XfeSetXmStringPSZ(_logo,XmNlabelString,XmFONTLIST_DEFAULT_TAG,buf);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
logo_activate_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
_current_animation++;
|
||||
|
||||
if (_current_animation == NUM_ANIMATIONS)
|
||||
{
|
||||
_current_animation = 0;
|
||||
}
|
||||
|
||||
set_animation(_current_animation);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
start_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeLogoAnimationStart(_logo);
|
||||
|
||||
XfeProgressBarCylonStart(_progress_bar);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
stop_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeLogoAnimationStop(_logo);
|
||||
|
||||
XfeProgressBarCylonStop(_progress_bar);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
reset_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeLogoAnimationReset(_logo);
|
||||
|
||||
XfeProgressBarCylonReset(_progress_bar);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
tick_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XfeProgressBarCylonTick(_progress_bar);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
init_animations()
|
||||
{
|
||||
XfePixmapTable pixmaps = NULL;
|
||||
Cardinal num_pixmaps = 0;
|
||||
|
||||
/* Transparent 40x40 */
|
||||
pixmaps = NULL;
|
||||
num_pixmaps = 0;
|
||||
|
||||
XfeGetTransparent40x40Animation(_logo,&pixmaps,&num_pixmaps);
|
||||
|
||||
_animation_pixmaps[0] = pixmaps;
|
||||
_animation_frame_counts[0] = num_pixmaps;
|
||||
|
||||
/* Transparent 20x20 */
|
||||
pixmaps = NULL;
|
||||
num_pixmaps = 0;
|
||||
|
||||
XfeGetTransparent20x20Animation(_logo,&pixmaps,&num_pixmaps);
|
||||
|
||||
_animation_pixmaps[1] = pixmaps;
|
||||
_animation_frame_counts[1] = num_pixmaps;
|
||||
|
||||
/* Main 40x40 */
|
||||
pixmaps = NULL;
|
||||
num_pixmaps = 0;
|
||||
|
||||
XfeGetMain40x40Animation(_logo,&pixmaps,&num_pixmaps);
|
||||
|
||||
_animation_pixmaps[2] = pixmaps;
|
||||
_animation_frame_counts[2] = num_pixmaps;
|
||||
|
||||
/* Main 20x20 */
|
||||
pixmaps = NULL;
|
||||
num_pixmaps = 0;
|
||||
|
||||
XfeGetMain20x20Animation(_logo,&pixmaps,&num_pixmaps);
|
||||
|
||||
_animation_pixmaps[3] = pixmaps;
|
||||
_animation_frame_counts[3] = num_pixmaps;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,66 @@
|
|||
#! 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 = ../../../../..
|
||||
|
||||
ifdef XFE_WIDGETS_BUILD_UNUSED
|
||||
UNUSED_CSRCS = \
|
||||
ChromeTest.c \
|
||||
ComboBoxTest.c \
|
||||
FontChooserTest.c \
|
||||
FrameShellTest.c \
|
||||
$(NULL)
|
||||
|
||||
|
||||
endif
|
||||
|
||||
CSRCS = \
|
||||
$(UNUSED_CSRCS) \
|
||||
ArrowTest.c \
|
||||
ButtonTest.c \
|
||||
CascadeTest.c \
|
||||
DashBoardTest.c \
|
||||
LabelTest.c \
|
||||
LogoTest.c \
|
||||
MenuTest.c \
|
||||
PaneTestOne.c \
|
||||
PaneTestThree.c \
|
||||
PaneTestTwo.c \
|
||||
PixmapTest.c \
|
||||
ProgressBarTest.c \
|
||||
TaskBarTestOne.c \
|
||||
TaskBarTestTwo.c \
|
||||
ToolBarTest.c \
|
||||
ToolBoxTest.c \
|
||||
ToolScrollTest.c \
|
||||
$(NULL)
|
||||
|
||||
REQUIRES = \
|
||||
XfeTest \
|
||||
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)
|
|
@ -0,0 +1,49 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
!
|
||||
|
||||
PaneTestOne*MainForm.width: 600
|
||||
PaneTestOne*MainForm.height: 600
|
||||
PaneTestOne*MainForm.background: gray65
|
||||
|
||||
PaneTestOne*MainPane.leftAttachment: attach_form
|
||||
PaneTestOne*MainPane.rightAttachment: attach_form
|
||||
PaneTestOne*MainPane.topAttachment: attach_form
|
||||
PaneTestOne*MainPane.bottomAttachment: attach_form
|
||||
PaneTestOne*MainPane.leftOffset: 10
|
||||
PaneTestOne*MainPane.rightOffset: 10
|
||||
PaneTestOne*MainPane.topOffset: 10
|
||||
PaneTestOne*MainPane.bottomOffset: 10
|
||||
PaneTestOne*MainPane.sashPosition: 260
|
||||
|
||||
PaneTestOne*XfePane.background: gray65
|
||||
PaneTestOne*XfePane.shadowType: shadow_out
|
||||
PaneTestOne*XfePane.paneSashType: pane_sash_live
|
||||
PaneTestOne*XfePane.sashThickness: 6
|
||||
PaneTestOne*XfePane.sashShadowThickness: 2
|
||||
PaneTestOne*XfePane.shadowThickness: 0
|
||||
|
||||
PaneTestOne*MainPane.orientation: horizontal
|
||||
|
||||
|
||||
PaneTestOne*WPane.orientation: vertical
|
||||
PaneTestOne*EPane.orientation: vertical
|
||||
|
||||
PaneTestOne*NWPane.orientation: vertical
|
||||
PaneTestOne*SEPane.orientation: vertical
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
/* -*- 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: PaneTestOne.c */
|
||||
/* Description: Test for XfePane widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget frame;
|
||||
Widget main_form;
|
||||
Widget main_pane;
|
||||
|
||||
Widget e_pane;
|
||||
Widget w_pane;
|
||||
|
||||
Widget ne_pane;
|
||||
Widget nw_pane;
|
||||
Widget se_pane;
|
||||
Widget sw_pane;
|
||||
|
||||
XfeAppCreateSimple("PaneTestOne",&argc,argv,"Frame",&frame,&main_form);
|
||||
|
||||
main_pane = XtVaCreateManagedWidget("MainPane",
|
||||
xfePaneWidgetClass,
|
||||
main_form,
|
||||
NULL);
|
||||
|
||||
e_pane = XtVaCreateManagedWidget("EPane",
|
||||
xfePaneWidgetClass,
|
||||
main_pane,
|
||||
NULL);
|
||||
|
||||
w_pane = XtVaCreateManagedWidget("WPane",
|
||||
xfePaneWidgetClass,
|
||||
main_pane,
|
||||
NULL);
|
||||
|
||||
ne_pane = XtVaCreateManagedWidget("NEPane",
|
||||
xfePaneWidgetClass,
|
||||
e_pane,
|
||||
NULL);
|
||||
|
||||
se_pane = XtVaCreateManagedWidget("NEPane",
|
||||
xfePaneWidgetClass,
|
||||
e_pane,
|
||||
NULL);
|
||||
|
||||
nw_pane = XtVaCreateManagedWidget("NWPane",
|
||||
xfePaneWidgetClass,
|
||||
w_pane,
|
||||
NULL);
|
||||
|
||||
sw_pane = XtVaCreateManagedWidget("SWPane",
|
||||
xfePaneWidgetClass,
|
||||
w_pane,
|
||||
NULL);
|
||||
|
||||
XfeCreateFormAndButton(se_pane,"Form","SE1",5,True,NULL,0);
|
||||
XfeCreateFormAndButton(se_pane,"Form","SE2",5,True,NULL,0);
|
||||
|
||||
XfeCreateFormAndButton(sw_pane,"Form","SW1",5,True,NULL,0);
|
||||
XfeCreateFormAndButton(sw_pane,"Form","SW2",5,True,NULL,0);
|
||||
|
||||
XfeCreateFormAndButton(ne_pane,"Form","NE1",5,True,NULL,0);
|
||||
XfeCreateFormAndButton(ne_pane,"Form","NE2",5,True,NULL,0);
|
||||
|
||||
XfeCreateFormAndButton(nw_pane,"Form","NW1",5,True,NULL,0);
|
||||
XfeCreateFormAndButton(nw_pane,"Form","NW2",5,True,NULL,0);
|
||||
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,199 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
!
|
||||
|
||||
!!
|
||||
!! The mail/news demo
|
||||
!!
|
||||
PaneTestThree*MainForm.width: 600
|
||||
PaneTestThree*MainForm.height: 600
|
||||
PaneTestThree*MainForm.background: gray70
|
||||
|
||||
PaneTestThree*paneSashType: pane_sash_live
|
||||
!PaneTestThree*paneSashType: pane_sash_double_line
|
||||
|
||||
PaneTestThree*sashShadowThickness: 0
|
||||
|
||||
|
||||
!!
|
||||
!! The Mail/News Pane
|
||||
!!
|
||||
PaneTestThree*MailPane.background: gray70
|
||||
PaneTestThree*MailPane.leftAttachment: attach_form
|
||||
PaneTestThree*MailPane.rightAttachment: attach_form
|
||||
PaneTestThree*MailPane.topAttachment: attach_form
|
||||
PaneTestThree*MailPane.bottomAttachment: attach_form
|
||||
PaneTestThree*MailPane.leftOffset: 10
|
||||
PaneTestThree*MailPane.rightOffset: 10
|
||||
PaneTestThree*MailPane.topOffset: 10
|
||||
PaneTestThree*MailPane.bottomOffset: 10
|
||||
PaneTestThree*MailPane.shadowThickness: 0
|
||||
PaneTestThree*MailPane.shadowType: shadow_out
|
||||
PaneTestThree*MailPane.orientation: horizontal
|
||||
PaneTestThree*MailPane.sashThickness: 0
|
||||
PaneTestThree*MailPane.sashSpacing: 2
|
||||
|
||||
!!
|
||||
!! The Collapsing Tab
|
||||
!!
|
||||
PaneTestThree*MailTab.shadowThickness: 0
|
||||
|
||||
!!
|
||||
!! The Folders Form
|
||||
!!
|
||||
PaneTestThree*FoldersForm.shadowThickness: 1
|
||||
PaneTestThree*FoldersForm.shadowType: shadow_in
|
||||
PaneTestThree*FoldersForm.background: gray65
|
||||
|
||||
|
||||
!!
|
||||
!! The Folders Collapse Form
|
||||
!!
|
||||
PaneTestThree*FoldersCollapseForm*background: gray70
|
||||
PaneTestThree*FoldersCollapseForm.paneChildType: pane_child_attachment_one
|
||||
PaneTestThree*FoldersCollapseForm.paneChildAttachment: pane_child_attach_right
|
||||
PaneTestThree*FoldersCollapseForm.alwaysVisible: true
|
||||
PaneTestThree*FoldersCollapseForm.allowDrag: true
|
||||
|
||||
PaneTestThree*FoldersCollapseArrow.traversalOn: false
|
||||
PaneTestThree*FoldersCollapseArrow.shadowThickness: 1
|
||||
PaneTestThree*FoldersCollapseArrow.highlightThickness: 0
|
||||
PaneTestThree*FoldersCollapseArrow.arrowDirection: arrow_left
|
||||
PaneTestThree*FoldersCollapseArrow.arrowWidth: 10
|
||||
PaneTestThree*FoldersCollapseArrow.arrowHeight: 10
|
||||
|
||||
PaneTestThree*FoldersCollapseArrow.leftAttachment: attach_form
|
||||
PaneTestThree*FoldersCollapseArrow.topAttachment: attach_form
|
||||
PaneTestThree*FoldersCollapseArrow.bottomAttachment: attach_none
|
||||
PaneTestThree*FoldersCollapseArrow.rightAttachment: attach_form
|
||||
PaneTestThree*FoldersCollapseArrow.leftOffset: 2
|
||||
PaneTestThree*FoldersCollapseArrow.rightOffset: 3
|
||||
|
||||
PaneTestThree*FoldersCollapseLabel.topAttachment: attach_widget
|
||||
PaneTestThree*FoldersCollapseLabel.bottomAttachment: attach_none
|
||||
PaneTestThree*FoldersCollapseLabel.leftAttachment: attach_form
|
||||
PaneTestThree*FoldersCollapseLabel.rightAttachment: attach_form
|
||||
PaneTestThree*FoldersCollapseLabel.topWidget: FoldersCollapseArrow
|
||||
PaneTestThree*FoldersCollapseLabel.topOffset: 4
|
||||
PaneTestThree*FoldersCollapseLabel.labelString: P\nu\ns\nh\n\nA\nr\nr\no\nw
|
||||
|
||||
!!
|
||||
!! The Message Pane
|
||||
!!
|
||||
PaneTestThree*MessagePane.background: gray70
|
||||
PaneTestThree*MessagePane.orientation: vertical
|
||||
PaneTestThree*MessagePane.sashThickness: 0
|
||||
!PaneTestThree*MessagePane.allowDrag: true
|
||||
|
||||
PaneTestThree*ThreadForm.shadowThickness: 1
|
||||
PaneTestThree*ThreadForm.shadowType: shadow_in
|
||||
PaneTestThree*ThreadForm.background: gray65
|
||||
|
||||
PaneTestThree*MessageForm.shadowThickness: 1
|
||||
PaneTestThree*MessageForm.shadowType: shadow_in
|
||||
PaneTestThree*MessageForm.background: gray65
|
||||
|
||||
PaneTestThree*AttachmentsForm.shadowThickness: 1
|
||||
PaneTestThree*AttachmentsForm.shadowType: shadow_in
|
||||
PaneTestThree*AttachmentsForm.background: gray70
|
||||
PaneTestThree*AttachmentsForm.allowDrag: false
|
||||
PaneTestThree*AttachmentsForm.allowResize: true
|
||||
|
||||
PaneTestThree*AttachmentsSW*XmScrollBar*shadowThickness: 1
|
||||
|
||||
PaneTestThree*AttachmentsSW.scrollingPolicy: automatic
|
||||
PaneTestThree*AttachmentsSW.shadowThickness: 0
|
||||
PaneTestThree*AttachmentsSW.shadowType: shadow_in
|
||||
PaneTestThree*AttachmentsSW*background: gray65
|
||||
PaneTestThree*AttachmentsSW.topAttachment: attach_form
|
||||
PaneTestThree*AttachmentsSW.bottomAttachment: attach_form
|
||||
PaneTestThree*AttachmentsSW.leftAttachment: attach_form
|
||||
PaneTestThree*AttachmentsSW.rightAttachment: attach_form
|
||||
PaneTestThree*AttachmentsSW.topOffset: 1
|
||||
PaneTestThree*AttachmentsSW.leftOffset: 1
|
||||
PaneTestThree*AttachmentsSW.rightOffset: 1
|
||||
PaneTestThree*AttachmentsSW.bottomOffset: 1
|
||||
|
||||
PaneTestThree*AttachmentsSW.scrolledWindowMarginWidth: 0
|
||||
PaneTestThree*AttachmentsSW.scrolledWindowMarginHeight: 0
|
||||
|
||||
PaneTestThree*AttachmentsSW*traversalOn: false
|
||||
PaneTestThree*AttachmentsSW*highlightThickness: 0
|
||||
|
||||
PaneTestThree*ScrolledWindowClipWindow*background: gray65
|
||||
|
||||
|
||||
PaneTestThree*AttachmentsToolBar.usePreferredHeight: true
|
||||
PaneTestThree*AttachmentsToolBar.usePreferredWidth: true
|
||||
PaneTestThree*AttachmentsToolBar.spacing: 8
|
||||
!PaneTestThree*AttachmentsToolBar*background: gray65
|
||||
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*selectionModifiers: Any
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*shadowThickness: 0
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*highlightThickness: 0
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*traversalOn: false
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*raiseOnEnter: false
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*buttonType: button_push
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*selectionColor: #FFFFCC
|
||||
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*marginLeft: 2
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*marginRight: 2
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*marginTop: 2
|
||||
PaneTestThree*AttachmentsToolBar*XfeButton*marginBottom: 2
|
||||
|
||||
!!
|
||||
!! The Message Collapse Form
|
||||
!!
|
||||
PaneTestThree*MessageCollapseForm*background: gray70
|
||||
PaneTestThree*MessageCollapseForm.paneChildType: pane_child_attachment_two
|
||||
PaneTestThree*MessageCollapseForm.paneChildAttachment: pane_child_attach_top
|
||||
PaneTestThree*MessageCollapseForm.alwaysVisible: true
|
||||
PaneTestThree*MessageCollapseForm.allowDrag: true
|
||||
|
||||
PaneTestThree*MessageCollapseArrow.traversalOn: false
|
||||
PaneTestThree*MessageCollapseArrow.shadowThickness: 1
|
||||
PaneTestThree*MessageCollapseArrow.highlightThickness: 0
|
||||
PaneTestThree*MessageCollapseArrow.arrowDirection: arrow_down
|
||||
PaneTestThree*MessageCollapseArrow.arrowWidth: 10
|
||||
PaneTestThree*MessageCollapseArrow.arrowHeight: 10
|
||||
|
||||
PaneTestThree*MessageCollapseArrow.leftAttachment: attach_form
|
||||
PaneTestThree*MessageCollapseArrow.topAttachment: attach_form
|
||||
PaneTestThree*MessageCollapseArrow.bottomAttachment: attach_form
|
||||
PaneTestThree*MessageCollapseArrow.rightAttachment: attach_none
|
||||
PaneTestThree*MessageCollapseArrow.topOffset: 2
|
||||
PaneTestThree*MessageCollapseArrow.bottomOffset: 3
|
||||
|
||||
PaneTestThree*MessageCollapseLabel.leftAttachment: attach_widget
|
||||
PaneTestThree*MessageCollapseLabel.topAttachment: attach_form
|
||||
PaneTestThree*MessageCollapseLabel.bottomAttachment: attach_form
|
||||
PaneTestThree*MessageCollapseLabel.rightAttachment: attach_none
|
||||
PaneTestThree*MessageCollapseLabel.leftWidget: MessageCollapseArrow
|
||||
PaneTestThree*MessageCollapseLabel.leftOffset: 4
|
||||
PaneTestThree*MessageCollapseLabel.labelString: Push Arrow
|
||||
|
||||
!!
|
||||
!! The Message Pane
|
||||
!!
|
||||
PaneTestThree*AttachmentsPane.background: gray70
|
||||
PaneTestThree*AttachmentsPane.orientation: vertical
|
||||
PaneTestThree*AttachmentsPane.sashThickness: 2
|
||||
PaneTestThree*AttachmentsPane.sashShadowThickness: 0
|
||||
PaneTestThree*AttachmentsPane.paneDragMode: pane_drag_preserve_two
|
||||
|
||||
!PaneTestThree*AttachmentsForm*background: CadetBlue4
|
|
@ -0,0 +1,790 @@
|
|||
/* -*- 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: PaneTestThree.c */
|
||||
/* Description: Test for XfePane widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget pane_create (Widget,String);
|
||||
static void pane_add_buttons (Widget,Widget,Widget);
|
||||
static void pane_add_title (Widget);
|
||||
static void pane_add_forms (Widget,Widget *,Widget *);
|
||||
static void menu_item_cb (Widget,XtPointer,XtPointer);
|
||||
static void toggle_managed_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget create_simple_pane_frame (String);
|
||||
static Widget create_form_and_button (Widget,unsigned char,
|
||||
unsigned char,Widget,String,
|
||||
String,Dimension);
|
||||
|
||||
static Widget mail_create_pane (Widget,String);
|
||||
static Widget mail_create_frame (String);
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec file_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ "Save", XfeMENU_PUSH },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Exit", XfeMENU_PUSH, XfeExitCallback },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec orientation_items[] =
|
||||
{
|
||||
{ "OrientationVertical", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "OrientationHorizontal", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec pane_sash_type_items[] =
|
||||
{
|
||||
{ "pane_sash_double_line", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_filled_rectangle", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_live", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_rectangle", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_single_line", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_boolean_items[] =
|
||||
{
|
||||
{ "TraversalOn", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Sensitive", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "UsePreferredWidth", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "UsePreferredHeight", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec misc_items[] =
|
||||
{
|
||||
{ "Orientation", XfeMENU_PANE, NULL, orientation_items },
|
||||
{ "PaneSashType", XfeMENU_PANE, NULL, pane_sash_type_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimension_items[] =
|
||||
{
|
||||
{ "0", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "2", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "3", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "4", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "5", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "6", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "7", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "8", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "9", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "10", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "20", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "30", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "40", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "50", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "100", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "200", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "300", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "400", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "500", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1000", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec margin_items[] =
|
||||
{
|
||||
{ "MarginLeft", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginRight", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginTop", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginBottom", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "MarginAll" , XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec managing_items[] =
|
||||
{
|
||||
{ "One" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneTop" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneBottom" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneLeft" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneRight" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Two" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoTop" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoBottom" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoLeft" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoRight" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimensions_items[] =
|
||||
{
|
||||
{ "Width", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "Height", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "HighlightThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "ShadowThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "SashOffset", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashShadowThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashSpacing", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Margins", XfeMENU_PANE, NULL, margin_items },
|
||||
{ "RaiseBorderThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "ArmOffset", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "SashPosition", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuPaneRec pane_items[] =
|
||||
{
|
||||
{ "File", file_items },
|
||||
{ "Managing", managing_items },
|
||||
{ "Dimensions", dimensions_items },
|
||||
{ "BooleanItems", button_boolean_items },
|
||||
{ "MiscItems", misc_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget mail_frame;
|
||||
|
||||
XfeAppCreate("PaneTestThree",&argc,argv);
|
||||
|
||||
mail_frame = mail_create_frame("MailShell");
|
||||
|
||||
XtPopup(mail_frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
pane_create(Widget parent,String name)
|
||||
{
|
||||
Widget pane;
|
||||
|
||||
pane = XtVaCreateManagedWidget(name,
|
||||
xfePaneWidgetClass,
|
||||
parent,
|
||||
NULL);
|
||||
return pane;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
pane_add_forms(Widget pane,
|
||||
Widget * form_one_out,
|
||||
Widget * form_two_out)
|
||||
{
|
||||
Widget form_one = NULL;
|
||||
Widget form_two = NULL;
|
||||
unsigned char orientation;
|
||||
String form_one_name;
|
||||
String form_two_name;
|
||||
|
||||
assert( XfeIsAlive(pane) );
|
||||
|
||||
XtVaGetValues(pane,XmNorientation,&orientation,NULL);
|
||||
|
||||
if (orientation == XmVERTICAL)
|
||||
{
|
||||
form_one_name = "TopForm";
|
||||
form_two_name = "BottomForm";
|
||||
}
|
||||
else
|
||||
{
|
||||
form_one_name = "LeftForm";
|
||||
form_two_name = "RightForm";
|
||||
}
|
||||
|
||||
form_one = XtVaCreateManagedWidget(form_one_name,
|
||||
xmFormWidgetClass,
|
||||
pane,
|
||||
NULL);
|
||||
|
||||
form_two = XtVaCreateManagedWidget(form_two_name,
|
||||
xmFormWidgetClass,
|
||||
pane,
|
||||
NULL);
|
||||
|
||||
*form_one_out = form_one;
|
||||
*form_two_out = form_two;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
pane_add_buttons(Widget pane,
|
||||
Widget form_one,
|
||||
Widget form_two)
|
||||
{
|
||||
Widget button_one;
|
||||
Widget button_two;
|
||||
unsigned char orientation;
|
||||
String button_one_name;
|
||||
String button_two_name;
|
||||
|
||||
assert( XfeIsAlive(pane) );
|
||||
assert( XfeIsAlive(form_one) );
|
||||
assert( XfeIsAlive(form_two) );
|
||||
|
||||
XtVaGetValues(pane,XmNorientation,&orientation,NULL);
|
||||
|
||||
if (orientation == XmVERTICAL)
|
||||
{
|
||||
button_one_name = "TopButton";
|
||||
button_two_name = "BottomButton";
|
||||
}
|
||||
else
|
||||
{
|
||||
button_one_name = "LeftButton";
|
||||
button_two_name = "RightButton";
|
||||
}
|
||||
|
||||
button_one = XtVaCreateManagedWidget(button_one_name,
|
||||
xmPushButtonWidgetClass,
|
||||
form_one,
|
||||
NULL);
|
||||
|
||||
button_two = XtVaCreateManagedWidget(button_two_name,
|
||||
xmPushButtonWidgetClass,
|
||||
form_two,
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
pane_add_title(Widget pane)
|
||||
{
|
||||
Widget sash_form;
|
||||
Widget arrow;
|
||||
Widget label;
|
||||
unsigned char orientation;
|
||||
String arrow_name;
|
||||
String label_name;
|
||||
|
||||
assert( XfeIsAlive(pane) );
|
||||
|
||||
XtVaGetValues(pane,XmNorientation,&orientation,NULL);
|
||||
|
||||
if (orientation == XmVERTICAL)
|
||||
{
|
||||
arrow_name = "VerticalArrow";
|
||||
label_name = "VerticalLabel";
|
||||
}
|
||||
else
|
||||
{
|
||||
arrow_name = "HorizontalArrow";
|
||||
label_name = "HorizontalLabel";
|
||||
}
|
||||
|
||||
/* XtVaGetValues(pane,XmNsashForm,&sash_form,NULL); */
|
||||
|
||||
assert( XfeIsAlive(sash_form) );
|
||||
|
||||
if (orientation == XmVERTICAL)
|
||||
{
|
||||
arrow = XtVaCreateManagedWidget(arrow_name,
|
||||
xmArrowButtonWidgetClass,
|
||||
sash_form,
|
||||
NULL);
|
||||
}
|
||||
|
||||
label = XtVaCreateManagedWidget(label_name,
|
||||
xmLabelWidgetClass,
|
||||
sash_form,
|
||||
XmNleftWidget, arrow,
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_simple_pane_frame(String frame_name)
|
||||
{
|
||||
Widget frame;
|
||||
Widget form;
|
||||
Widget menu;
|
||||
|
||||
Widget pane;
|
||||
|
||||
Widget one;
|
||||
Widget two;
|
||||
|
||||
frame = XfeFrameCreate(frame_name,NULL,0);
|
||||
|
||||
form = XfeDescendantFindByName(frame,"MainForm",XfeFIND_ANY,False);
|
||||
|
||||
pane = XtVaCreateManagedWidget("Pane",xfePaneWidgetClass,form,NULL);
|
||||
|
||||
menu = XfeMenuBarCreate(form,"MenuBar",pane_items,(XtPointer) pane,NULL,0);
|
||||
|
||||
one = XtVaCreateManagedWidget("One",xmFormWidgetClass,pane,NULL);
|
||||
|
||||
two = XtVaCreateManagedWidget("Two",xmFormWidgetClass,pane,NULL);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_TOP,
|
||||
one,"OneTop","Top",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_BOTTOM,
|
||||
one,"OneBottom","Bottom",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_LEFT,
|
||||
one,"OneLeft","Left",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_RIGHT,
|
||||
one,"OneRight","Right",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_TOP,
|
||||
two,"TwoTop","Top",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_BOTTOM,
|
||||
two,"TwoBottom","Bottom",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_LEFT,
|
||||
two,"TwoLeft","Left",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_RIGHT,
|
||||
two,"TwoRight","Right",2);
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
menu_item_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget pane = (Widget) client_data;
|
||||
String name = XtName(w);
|
||||
String parent_name = XtName(XtParent(w));
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
printf("menu_item_cb(%s,%s) pane = %s\n",name,parent_name,XtName(pane));
|
||||
|
||||
if (!XfeIsAlive(pane))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(name,"TraversalOn") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNtraversalOn);
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_double_line") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_DOUBLE_LINE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_live") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_LIVE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_rectangle") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_RECTANGLE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_filled_rectangle") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_FILLED_RECTANGLE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_single_line") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_SINGLE_LINE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"Sensitive") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNsensitive);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredWidth") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNusePreferredWidth);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredHeight") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNusePreferredHeight);
|
||||
}
|
||||
else if (strcmp(name,"ShadowIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentBeginning") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_BEGINNING); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentCenter") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_CENTER); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentEnd") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_END); ac++;
|
||||
}
|
||||
|
||||
if (strcmp(parent_name,"MarginLeft") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginRight") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginTop") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginBottom") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginAll") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Width") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNwidth,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Height") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNheight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ShadowThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashOffset") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashOffset,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashSpacing") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashSpacing,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashShadowThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashShadowThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"HighlightThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNhighlightThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"RaiseBorderThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNraiseBorderThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ArmOffset") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNarmOffset,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(name,"OrientationVertical") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNorientation,XmVERTICAL); ac++;
|
||||
}
|
||||
else if (strcmp(name,"OrientationHorizontal") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNorientation,XmHORIZONTAL); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Managing") == 0)
|
||||
{
|
||||
Widget child = XfeDescendantFindByName(pane,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(child))
|
||||
{
|
||||
XfeToggleManagedState(child);
|
||||
}
|
||||
}
|
||||
else if (strcmp(parent_name,"SashPosition") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashPosition,atoi(name)); ac++;
|
||||
}
|
||||
|
||||
if (ac)
|
||||
{
|
||||
XtSetValues(pane,av,ac);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
toggle_managed_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget pane = (Widget) client_data;
|
||||
|
||||
if (XfeIsAlive(pane))
|
||||
{
|
||||
XfeToggleManagedState(pane);
|
||||
|
||||
if (XfeIsArrow(w))
|
||||
{
|
||||
unsigned char arrow_direction;
|
||||
|
||||
XtVaGetValues(w,XmNarrowDirection,&arrow_direction,NULL);
|
||||
|
||||
if (arrow_direction == XmARROW_DOWN)
|
||||
{
|
||||
arrow_direction = XmARROW_UP;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_UP)
|
||||
{
|
||||
arrow_direction = XmARROW_DOWN;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_RIGHT)
|
||||
{
|
||||
arrow_direction = XmARROW_LEFT;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_LEFT)
|
||||
{
|
||||
arrow_direction = XmARROW_RIGHT;
|
||||
}
|
||||
|
||||
XtVaSetValues(w,XmNarrowDirection,arrow_direction,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_form_and_button(Widget pw,
|
||||
unsigned char child_type,
|
||||
unsigned char child_attachment,
|
||||
Widget target,
|
||||
String form_name,
|
||||
String button_name,
|
||||
Dimension offset)
|
||||
{
|
||||
Widget form = NULL;
|
||||
Widget button = NULL;
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
XtSetArg(av[ac],XmNpaneChildType, child_type); ac++;
|
||||
XtSetArg(av[ac],XmNpaneChildAttachment, child_attachment); ac++;
|
||||
XtSetArg(av[ac],XmNalwaysVisible, True); ac++;
|
||||
|
||||
#if 1
|
||||
|
||||
form = XfeCreateFormAndButton(pw,form_name,button_name,offset,True,av,ac);
|
||||
|
||||
button = XfeDescendantFindByName(form,button_name,XfeFIND_ANY,False);
|
||||
|
||||
assert( XfeIsAlive(button) );
|
||||
|
||||
XtAddCallback(button,XmNactivateCallback,toggle_managed_cb,target);
|
||||
|
||||
#else
|
||||
|
||||
XtSetArg(av[ac],XmNwidth, 20); ac++;
|
||||
XtSetArg(av[ac],XmNheight, 20); ac++;
|
||||
|
||||
form = XtCreateManagedWidget(form_name,xmFormWidgetClass,pw,av,ac);
|
||||
|
||||
#endif
|
||||
|
||||
return form;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static Widget
|
||||
mail_create_pane(Widget pw,String name)
|
||||
{
|
||||
Widget mail_pane;
|
||||
Widget message_pane;
|
||||
Widget thread_form;
|
||||
Widget message_form;
|
||||
Widget folders_form;
|
||||
Widget main_tab;
|
||||
|
||||
Widget attachments_pane;
|
||||
Widget attachments_tool_bar;
|
||||
Widget attachments_form;
|
||||
Widget attachments_sw;
|
||||
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
Widget message_collapse_form;
|
||||
Widget message_collapse_arrow;
|
||||
Widget message_collapse_label;
|
||||
Widget folders_collapse_form;
|
||||
Widget folders_collapse_arrow;
|
||||
Widget folders_collapse_label;
|
||||
|
||||
/* Main mail pane */
|
||||
mail_pane = XtVaCreateManagedWidget(name,
|
||||
xfePaneWidgetClass,
|
||||
pw,
|
||||
NULL);
|
||||
|
||||
folders_form = XtVaCreateManagedWidget("FoldersForm",
|
||||
xmFormWidgetClass,
|
||||
mail_pane,
|
||||
NULL);
|
||||
|
||||
/* Message pane */
|
||||
message_pane = XtVaCreateManagedWidget("MessagePane",
|
||||
xfePaneWidgetClass,
|
||||
mail_pane,
|
||||
NULL);
|
||||
|
||||
thread_form = XtVaCreateManagedWidget("ThreadForm",
|
||||
xmFormWidgetClass,
|
||||
message_pane,
|
||||
NULL);
|
||||
|
||||
/* Attachments pane */
|
||||
attachments_pane = XtVaCreateManagedWidget("AttachmentsPane",
|
||||
xfePaneWidgetClass,
|
||||
message_pane,
|
||||
NULL);
|
||||
|
||||
|
||||
message_form = XtVaCreateManagedWidget("MessageForm",
|
||||
xmFormWidgetClass,
|
||||
attachments_pane,
|
||||
NULL);
|
||||
|
||||
message_collapse_form = XtVaCreateManagedWidget("MessageCollapseForm",
|
||||
xmFormWidgetClass,
|
||||
message_pane,
|
||||
NULL);
|
||||
|
||||
message_collapse_arrow = XtCreateManagedWidget("MessageCollapseArrow",
|
||||
xfeArrowWidgetClass,
|
||||
message_collapse_form,
|
||||
NULL,0);
|
||||
|
||||
message_collapse_label = XtCreateManagedWidget("MessageCollapseLabel",
|
||||
xmLabelWidgetClass,
|
||||
message_collapse_form,
|
||||
NULL,0);
|
||||
|
||||
/* Toggle the vertical attachments pane */
|
||||
XtAddCallback(message_collapse_arrow,
|
||||
XmNactivateCallback,
|
||||
toggle_managed_cb,
|
||||
attachments_pane);
|
||||
|
||||
/* Attachments form */
|
||||
attachments_form = XtVaCreateManagedWidget("AttachmentsForm",
|
||||
xmFormWidgetClass,
|
||||
attachments_pane,
|
||||
NULL);
|
||||
|
||||
attachments_sw = XtVaCreateManagedWidget("AttachmentsSW",
|
||||
xmScrolledWindowWidgetClass,
|
||||
attachments_form,
|
||||
NULL);
|
||||
|
||||
attachments_tool_bar = XfeCreateLoadedToolBar(attachments_sw,
|
||||
"AttachmentsToolBar",
|
||||
"Attach",
|
||||
14,
|
||||
4,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Folders collapse form */
|
||||
folders_collapse_form = XtVaCreateManagedWidget("FoldersCollapseForm",
|
||||
xmFormWidgetClass,
|
||||
mail_pane,
|
||||
NULL);
|
||||
|
||||
folders_collapse_arrow = XtCreateManagedWidget("FoldersCollapseArrow",
|
||||
xfeArrowWidgetClass,
|
||||
folders_collapse_form,
|
||||
NULL,0);
|
||||
|
||||
folders_collapse_label = XtCreateManagedWidget("FoldersCollapseLabel",
|
||||
xmLabelWidgetClass,
|
||||
folders_collapse_form,
|
||||
NULL,0);
|
||||
|
||||
/* Toggle the main horizontal pane */
|
||||
XtAddCallback(folders_collapse_arrow,
|
||||
XmNactivateCallback,
|
||||
toggle_managed_cb,
|
||||
folders_form);
|
||||
|
||||
return mail_pane;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
mail_create_frame(String frame_name)
|
||||
{
|
||||
Widget frame;
|
||||
Widget form;
|
||||
Widget menu;
|
||||
|
||||
Widget pane;
|
||||
|
||||
Widget one;
|
||||
Widget two;
|
||||
|
||||
frame = XfeFrameCreate(frame_name,NULL,0);
|
||||
|
||||
form = XfeDescendantFindByName(frame,"MainForm",XfeFIND_ANY,False);
|
||||
|
||||
pane = mail_create_pane(form,"MailPane");
|
||||
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,91 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
!
|
||||
|
||||
PaneTestTwo*MainForm.width: 600
|
||||
PaneTestTwo*MainForm.height: 600
|
||||
PaneTestTwo*MainForm.background: gray65
|
||||
|
||||
PaneTestTwo*MenuBar.leftAttachment: attach_form
|
||||
PaneTestTwo*MenuBar.rightAttachment: attach_form
|
||||
PaneTestTwo*MenuBar.topAttachment: attach_form
|
||||
PaneTestTwo*MenuBar.bottomAttachment: attach_none
|
||||
PaneTestTwo*MenuBar.leftOffset: 0
|
||||
PaneTestTwo*MenuBar.rightOffset: 0
|
||||
PaneTestTwo*MenuBar.topOffset: 0
|
||||
PaneTestTwo*MenuBar.bottomOffset: 0
|
||||
PaneTestTwo*MenuBar*background: gray60
|
||||
PaneTestTwo*MenuBar*foreground: black
|
||||
PaneTestTwo*MenuBar*shadowThickness: 2
|
||||
PaneTestTwo*MenuBar*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*
|
||||
|
||||
PaneTestTwo*Pane.leftAttachment: attach_form
|
||||
PaneTestTwo*Pane.rightAttachment: attach_form
|
||||
PaneTestTwo*Pane.topAttachment: attach_form
|
||||
PaneTestTwo*Pane.bottomAttachment: attach_form
|
||||
PaneTestTwo*Pane.leftOffset: 10
|
||||
PaneTestTwo*Pane.rightOffset: 10
|
||||
PaneTestTwo*Pane.topOffset: 40
|
||||
PaneTestTwo*Pane.bottomOffset: 10
|
||||
PaneTestTwo*Pane.background: gray65
|
||||
PaneTestTwo*Pane.shadowThickness: 1
|
||||
PaneTestTwo*Pane.shadowType: shadow_out
|
||||
|
||||
PaneTestTwo*Pane.marginLeft: 10
|
||||
PaneTestTwo*Pane.marginRight: 10
|
||||
PaneTestTwo*Pane.marginTop: 10
|
||||
PaneTestTwo*Pane.marginBottom: 10
|
||||
|
||||
!PaneTestTwo*Pane.orientation: horizontal
|
||||
|
||||
PaneTestTwo*Pane.sashPosition: 200
|
||||
PaneTestTwo*Pane.sashThickness: 10
|
||||
PaneTestTwo*Pane.sashShadowThickness: 1
|
||||
!PaneTestTwo*Pane.sashShadowType: shadow_etched_in
|
||||
PaneTestTwo*Pane.interactiveDragging: True
|
||||
|
||||
PaneTestTwo*Pane*One*background: red
|
||||
PaneTestTwo*Pane*Two*background: blue
|
||||
|
||||
PaneTestTwo*Pane*XmPushButton*shadowThickness: 1
|
||||
PaneTestTwo*Pane*XmPushButton*highlightThickness: 0
|
||||
PaneTestTwo*Pane*XmPushButton*traversalOn: false
|
||||
|
||||
PaneTestTwo*Pane*OneTop.background: green
|
||||
PaneTestTwo*Pane*OneTop*labelString: T1
|
||||
|
||||
PaneTestTwo*Pane*OneBottom.background: yellow
|
||||
PaneTestTwo*Pane*OneBottom*labelString: B1
|
||||
|
||||
PaneTestTwo*Pane*OneLeft.background: orange
|
||||
PaneTestTwo*Pane*OneLeft*labelString: L1
|
||||
|
||||
PaneTestTwo*Pane*OneRight.background: purple
|
||||
PaneTestTwo*Pane*OneRight*labelString: R1
|
||||
|
||||
PaneTestTwo*Pane*TwoTop.background: pink
|
||||
PaneTestTwo*Pane*TwoTop*labelString: T2
|
||||
|
||||
PaneTestTwo*Pane*TwoBottom.background: skyblue
|
||||
PaneTestTwo*Pane*TwoBottom*labelString: B2
|
||||
|
||||
PaneTestTwo*Pane*TwoLeft.background: cadetblue
|
||||
PaneTestTwo*Pane*TwoLeft*labelString: L2
|
||||
|
||||
PaneTestTwo*Pane*TwoRight.background: brown
|
||||
PaneTestTwo*Pane*TwoRight*labelString: R2
|
|
@ -0,0 +1,499 @@
|
|||
/* -*- 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: PaneTestTwo.c */
|
||||
/* Description: Test for XfePane widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static void menu_item_cb (Widget,XtPointer,XtPointer);
|
||||
static void toggle_managed_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget create_simple_pane_frame (String);
|
||||
static Widget create_form_and_button (Widget,unsigned char,
|
||||
unsigned char,Widget,String,
|
||||
String,Dimension);
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec file_items[] =
|
||||
{
|
||||
{ "Open", XfeMENU_PUSH },
|
||||
{ "Save", XfeMENU_PUSH },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Exit", XfeMENU_PUSH, XfeExitCallback },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec orientation_items[] =
|
||||
{
|
||||
{ "OrientationVertical", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "OrientationHorizontal", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec pane_sash_type_items[] =
|
||||
{
|
||||
{ "pane_sash_double_line", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_filled_rectangle", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_live", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_rectangle", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "pane_sash_single_line", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec button_boolean_items[] =
|
||||
{
|
||||
{ "TraversalOn", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Sensitive", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "UsePreferredWidth", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "UsePreferredHeight", XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec misc_items[] =
|
||||
{
|
||||
{ "Orientation", XfeMENU_PANE, NULL, orientation_items },
|
||||
{ "PaneSashType", XfeMENU_PANE, NULL, pane_sash_type_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimension_items[] =
|
||||
{
|
||||
{ "0", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "2", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "3", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "4", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "5", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "6", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "7", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "8", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "9", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "10", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "20", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "30", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "40", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "50", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "100", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "200", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "300", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "400", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "500", XfeMENU_RADIO, menu_item_cb },
|
||||
{ "1000", XfeMENU_RADIO, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec margin_items[] =
|
||||
{
|
||||
{ "MarginLeft", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginRight", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginTop", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "MarginBottom", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "MarginAll" , XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec managing_items[] =
|
||||
{
|
||||
{ "One" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneTop" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneBottom" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneLeft" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "OneRight" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Two" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoTop" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoBottom" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoLeft" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ "TwoRight" , XfeMENU_TOGGLE, menu_item_cb },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuItemRec dimensions_items[] =
|
||||
{
|
||||
{ "Width", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "Height", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "HighlightThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "ShadowThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "SashOffset", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashShadowThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashSpacing", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "SashThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "Margins", XfeMENU_PANE, NULL, margin_items },
|
||||
{ "RaiseBorderThickness", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "ArmOffset", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ "------------", XfeMENU_SEP },
|
||||
{ "SashPosition", XfeMENU_PANE, NULL, dimension_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
static XfeMenuPaneRec pane_items[] =
|
||||
{
|
||||
{ "File", file_items },
|
||||
{ "Managing", managing_items },
|
||||
{ "Dimensions", dimensions_items },
|
||||
{ "BooleanItems", button_boolean_items },
|
||||
{ "MiscItems", misc_items },
|
||||
{ NULL }
|
||||
};
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget simple_frame;
|
||||
|
||||
XfeAppCreate("PaneTestTwo",&argc,argv);
|
||||
|
||||
simple_frame = create_simple_pane_frame("Frame");
|
||||
|
||||
XtPopup(simple_frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_simple_pane_frame(String frame_name)
|
||||
{
|
||||
Widget frame;
|
||||
Widget form;
|
||||
Widget menu;
|
||||
|
||||
Widget pane;
|
||||
|
||||
Widget one;
|
||||
Widget two;
|
||||
|
||||
frame = XfeFrameCreate(frame_name,NULL,0);
|
||||
|
||||
form = XfeDescendantFindByName(frame,"MainForm",XfeFIND_ANY,False);
|
||||
|
||||
pane = XtVaCreateManagedWidget("Pane",xfePaneWidgetClass,form,NULL);
|
||||
|
||||
menu = XfeMenuBarCreate(form,"MenuBar",pane_items,(XtPointer) pane,NULL,0);
|
||||
|
||||
one = XtVaCreateManagedWidget("One",xmFormWidgetClass,pane,NULL);
|
||||
|
||||
two = XtVaCreateManagedWidget("Two",xmFormWidgetClass,pane,NULL);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_TOP,
|
||||
one,"OneTop","Top",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_BOTTOM,
|
||||
one,"OneBottom","Bottom",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_LEFT,
|
||||
one,"OneLeft","Left",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_ONE,
|
||||
XmPANE_CHILD_ATTACH_RIGHT,
|
||||
one,"OneRight","Right",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_TOP,
|
||||
two,"TwoTop","Top",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_BOTTOM,
|
||||
two,"TwoBottom","Bottom",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_LEFT,
|
||||
two,"TwoLeft","Left",2);
|
||||
|
||||
create_form_and_button(pane,
|
||||
XmPANE_CHILD_ATTACHMENT_TWO,
|
||||
XmPANE_CHILD_ATTACH_RIGHT,
|
||||
two,"TwoRight","Right",2);
|
||||
return frame;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
menu_item_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget pane = (Widget) client_data;
|
||||
String name = XtName(w);
|
||||
String parent_name = XtName(XtParent(w));
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
printf("menu_item_cb(%s,%s) pane = %s\n",name,parent_name,XtName(pane));
|
||||
|
||||
if (!XfeIsAlive(pane))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(name,"TraversalOn") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNtraversalOn);
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_double_line") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_DOUBLE_LINE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_live") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_LIVE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_rectangle") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_RECTANGLE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_filled_rectangle") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_FILLED_RECTANGLE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"pane_sash_single_line") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNpaneSashType,XmPANE_SASH_SINGLE_LINE); ac++;
|
||||
}
|
||||
else if (strcmp(name,"Sensitive") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNsensitive);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredWidth") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNusePreferredWidth);
|
||||
}
|
||||
else if (strcmp(name,"UsePreferredHeight") == 0)
|
||||
{
|
||||
XfeResourceToggleBoolean(pane,XmNusePreferredHeight);
|
||||
}
|
||||
else if (strcmp(name,"ShadowIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedIn") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_IN); ac++;
|
||||
}
|
||||
else if (strcmp(name,"ShadowEtchedOut") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowType,XmSHADOW_ETCHED_OUT); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentBeginning") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_BEGINNING); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentCenter") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_CENTER); ac++;
|
||||
}
|
||||
else if (strcmp(name,"AlignmentEnd") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNlabelAlignment,XmALIGNMENT_END); ac++;
|
||||
}
|
||||
|
||||
if (strcmp(parent_name,"MarginLeft") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginRight") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginTop") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginBottom") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"MarginAll") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNmarginLeft,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginRight,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginTop,atoi(name)); ac++;
|
||||
XtSetArg(av[ac],XmNmarginBottom,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Width") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNwidth,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Height") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNheight,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ShadowThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNshadowThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashOffset") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashOffset,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashSpacing") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashSpacing,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"SashShadowThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashShadowThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"HighlightThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNhighlightThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"RaiseBorderThickness") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNraiseBorderThickness,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"ArmOffset") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNarmOffset,atoi(name)); ac++;
|
||||
}
|
||||
else if (strcmp(name,"OrientationVertical") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNorientation,XmVERTICAL); ac++;
|
||||
}
|
||||
else if (strcmp(name,"OrientationHorizontal") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNorientation,XmHORIZONTAL); ac++;
|
||||
}
|
||||
else if (strcmp(parent_name,"Managing") == 0)
|
||||
{
|
||||
Widget child = XfeDescendantFindByName(pane,name,XfeFIND_ANY,False);
|
||||
|
||||
if (XfeIsAlive(child))
|
||||
{
|
||||
XfeToggleManagedState(child);
|
||||
}
|
||||
}
|
||||
else if (strcmp(parent_name,"SashPosition") == 0)
|
||||
{
|
||||
XtSetArg(av[ac],XmNsashPosition,atoi(name)); ac++;
|
||||
}
|
||||
|
||||
if (ac)
|
||||
{
|
||||
XtSetValues(pane,av,ac);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
toggle_managed_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
Widget pane = (Widget) client_data;
|
||||
|
||||
if (XfeIsAlive(pane))
|
||||
{
|
||||
XfeToggleManagedState(pane);
|
||||
|
||||
if (XfeIsArrow(w))
|
||||
{
|
||||
unsigned char arrow_direction;
|
||||
|
||||
XtVaGetValues(w,XmNarrowDirection,&arrow_direction,NULL);
|
||||
|
||||
if (arrow_direction == XmARROW_DOWN)
|
||||
{
|
||||
arrow_direction = XmARROW_UP;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_UP)
|
||||
{
|
||||
arrow_direction = XmARROW_DOWN;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_RIGHT)
|
||||
{
|
||||
arrow_direction = XmARROW_LEFT;
|
||||
}
|
||||
else if (arrow_direction == XmARROW_LEFT)
|
||||
{
|
||||
arrow_direction = XmARROW_RIGHT;
|
||||
}
|
||||
|
||||
XtVaSetValues(w,XmNarrowDirection,arrow_direction,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_form_and_button(Widget pw,
|
||||
unsigned char child_type,
|
||||
unsigned char child_attachment,
|
||||
Widget target,
|
||||
String form_name,
|
||||
String button_name,
|
||||
Dimension offset)
|
||||
{
|
||||
Widget form = NULL;
|
||||
Widget button = NULL;
|
||||
Arg av[20];
|
||||
Cardinal ac = 0;
|
||||
|
||||
XtSetArg(av[ac],XmNpaneChildType, child_type); ac++;
|
||||
XtSetArg(av[ac],XmNpaneChildAttachment, child_attachment); ac++;
|
||||
XtSetArg(av[ac],XmNalwaysVisible, True); ac++;
|
||||
|
||||
#if 1
|
||||
|
||||
form = XfeCreateFormAndButton(pw,form_name,button_name,offset,True,av,ac);
|
||||
|
||||
button = XfeDescendantFindByName(form,button_name,XfeFIND_ANY,False);
|
||||
|
||||
assert( XfeIsAlive(button) );
|
||||
|
||||
XtAddCallback(button,XmNactivateCallback,toggle_managed_cb,target);
|
||||
|
||||
#else
|
||||
|
||||
XtSetArg(av[ac],XmNwidth, 20); ac++;
|
||||
XtSetArg(av[ac],XmNheight, 20); ac++;
|
||||
|
||||
form = XtCreateManagedWidget(form_name,xmFormWidgetClass,pw,av,ac);
|
||||
|
||||
#endif
|
||||
|
||||
return form;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,59 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
!
|
||||
|
||||
PixmapTest*MainForm.width: 500
|
||||
PixmapTest*MainForm.height: 700
|
||||
PixmapTest*MainForm.background: Gray70
|
||||
PixmapTest*MainForm.shadowThickness: 0
|
||||
PixmapTest*MainForm.shadowType: shadow_in
|
||||
|
||||
PixmapTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
PixmapTest*labelFontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
PixmapTest*foreground: Black
|
||||
|
||||
|
||||
!!
|
||||
!! Large
|
||||
!!
|
||||
PixmapTest*Large.leftAttachment: attach_form
|
||||
PixmapTest*Large.rightAttachment: attach_none
|
||||
PixmapTest*Large.topAttachment: attach_form
|
||||
PixmapTest*Large.bottomAttachment: attach_none
|
||||
PixmapTest*Large.topOffset: 50
|
||||
PixmapTest*Large.leftOffset: 50
|
||||
PixmapTest*Large.buttonLayout: button_pixmap_only
|
||||
|
||||
PixmapTest*Large.raiseOnEnter: true
|
||||
|
||||
!!
|
||||
!! Small
|
||||
!!
|
||||
PixmapTest*Small.leftAttachment: attach_form
|
||||
PixmapTest*Small.rightAttachment: attach_none
|
||||
PixmapTest*Small.topAttachment: attach_widget
|
||||
PixmapTest*Small.bottomAttachment: attach_none
|
||||
PixmapTest*Small.topWidget: Large
|
||||
PixmapTest*Small.topOffset: 50
|
||||
PixmapTest*Small.leftOffset: 50
|
||||
PixmapTest*Small.buttonLayout: button_pixmap_only
|
||||
|
||||
PixmapTest*Small.raiseOnEnter: true
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
/* -*- 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: PixmapTest.c */
|
||||
/* Description: Test for pixmap funcs. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
#include <X11/xpm.h>
|
||||
|
||||
#define ICON_SMALL "../icons/taskbar/task_small_browser.xpm"
|
||||
#define ICON_SMALL_ARMED "../icons/taskbar/task_small_browser_armed.xpm"
|
||||
#define ICON_SMALL_RAISED "../icons/taskbar/task_small_browser_raised.xpm"
|
||||
|
||||
#define ICON "../icons/taskbar/task_browser.xpm"
|
||||
#define ICON_ARMED "../icons/taskbar/task_browser_armed.xpm"
|
||||
#define ICON_RAISED "../icons/taskbar/task_browser_raised.xpm"
|
||||
|
||||
static Boolean get_icon(Widget,String,Pixmap *,Pixmap *);
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget small;
|
||||
Widget large;
|
||||
Widget form;
|
||||
Widget frame;
|
||||
|
||||
Pixmap icon;
|
||||
Pixmap icon_armed;
|
||||
Pixmap icon_raised;
|
||||
|
||||
Pixmap icon_mask;
|
||||
Pixmap icon_armed_mask;
|
||||
Pixmap icon_raised_mask;
|
||||
|
||||
Pixmap icon_small;
|
||||
Pixmap icon_small_armed;
|
||||
Pixmap icon_small_raised;
|
||||
|
||||
Pixmap icon_small_mask;
|
||||
Pixmap icon_small_armed_mask;
|
||||
Pixmap icon_small_raised_mask;
|
||||
|
||||
XfeAppCreateSimple("PixmapTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
large = XfeCreateButton(form,"Large",NULL,0);
|
||||
|
||||
small = XfeCreateButton(form,"Small",NULL,0);
|
||||
|
||||
get_icon(large,ICON,&icon,&icon_mask);
|
||||
get_icon(large,ICON_ARMED,&icon_armed,&icon_armed_mask);
|
||||
get_icon(large,ICON_RAISED,&icon_raised,&icon_raised_mask);
|
||||
|
||||
get_icon(small,ICON_SMALL,&icon_small,&icon_small_mask);
|
||||
get_icon(small,ICON_SMALL_ARMED,&icon_small_armed,&icon_small_armed_mask);
|
||||
get_icon(small,ICON_SMALL_RAISED,&icon_small_raised,&icon_small_raised_mask);
|
||||
|
||||
|
||||
#if 0
|
||||
XtVaSetValues(large,
|
||||
XmNpixmap, icon,
|
||||
XmNpixmapMask, icon_mask,
|
||||
XmNarmedPixmap, icon_armed,
|
||||
XmNarmedPixmapMask, icon_armed_mask,
|
||||
XmNraisedPixmap, icon_raised,
|
||||
XmNraisedPixmapMask, icon_raised_mask,
|
||||
NULL);
|
||||
|
||||
XtVaSetValues(small,
|
||||
XmNpixmap, icon_small,
|
||||
XmNpixmapMask, icon_small_mask,
|
||||
XmNarmedPixmap, icon_small_armed,
|
||||
XmNarmedPixmapMask, icon_small_armed_mask,
|
||||
XmNraisedPixmap, icon_small_raised,
|
||||
XmNraisedPixmapMask, icon_small_raised_mask,
|
||||
NULL);
|
||||
#else
|
||||
XtVaSetValues(large,
|
||||
XmNpixmap, XfeGetPixmap(large,"task_editor"),
|
||||
XmNpixmapMask, XfeGetMask(large,"task_editor"),
|
||||
XmNarmedPixmap, XfeGetPixmap(large,"task_editor_armed"),
|
||||
XmNarmedPixmapMask, XfeGetMask(large,"task_editor_armed"),
|
||||
XmNraisedPixmap, XfeGetPixmap(large,"task_editor_raised"),
|
||||
XmNraisedPixmapMask, XfeGetMask(large,"task_editor_raised"),
|
||||
NULL);
|
||||
|
||||
XtVaSetValues(small,
|
||||
XmNpixmap, XfeGetPixmap(large,"task_small_editor"),
|
||||
XmNpixmapMask, XfeGetMask(large,"task_small_editor"),
|
||||
XmNarmedPixmap, XfeGetPixmap(large,"task_small_editor_armed"),
|
||||
XmNarmedPixmapMask, XfeGetMask(large,"task_small_editor_armed"),
|
||||
XmNraisedPixmap, XfeGetPixmap(large,"task_small_editor_raised"),
|
||||
XmNraisedPixmapMask, XfeGetMask(large,"task_small_editor_raised"),
|
||||
NULL);
|
||||
|
||||
#endif
|
||||
|
||||
XtManageChild(large);
|
||||
XtManageChild(small);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Boolean
|
||||
get_icon(Widget w,String filename,Pixmap * pixmap,Pixmap * mask)
|
||||
{
|
||||
return XfeAllocatePixmapFromFile(filename,
|
||||
XtDisplay(w),
|
||||
DefaultRootWindow(XtDisplay(w)),
|
||||
XfeColormap(w),
|
||||
40000,
|
||||
XfeDepth(w),
|
||||
XfeBackground(w),
|
||||
pixmap,
|
||||
mask);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,201 @@
|
|||
/* -*- 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: ProgressBarTest.c */
|
||||
/* Description: Test for XfeProgressBar widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static void StartSweep (Widget,int);
|
||||
static void SweepTimeout (XtPointer,XtIntervalId *);
|
||||
|
||||
static void StartMessages (Widget,int);
|
||||
static void MessageTimeout (XtPointer,XtIntervalId *);
|
||||
|
||||
#define SWEEP_INTERVAL 100
|
||||
#define MESSAGE_INTERVAL 500
|
||||
|
||||
#define MAX_PERCENT 100
|
||||
#define MIN_PERCENT 0
|
||||
|
||||
static String _messages[] =
|
||||
{
|
||||
"A News error occurred",
|
||||
"If you are unable to connect again later, contact",
|
||||
"If you are unable to connect again, contact the",
|
||||
"Netscape is unable to complete a socket connection",
|
||||
"Netscape is unable to complete a socket connection ",
|
||||
"Netscape is unable to connect to the server at",
|
||||
"Netscape is unable to connect to your proxy server.",
|
||||
"Netscape refuses to connect to this server.",
|
||||
"Netscape was unable to connect to the SMTP server.",
|
||||
"Netscape was unable to create a network socket connection.",
|
||||
"Netscape was unble to connect to the secure news server",
|
||||
"Netscape's network connection was refused by the server",
|
||||
"Please try your connection again)",
|
||||
"The server has disconnected.",
|
||||
"The server may not be accepting connections or the end of the world is upon us very soon.",
|
||||
"Try connecting again later or try restarting Netscape.",
|
||||
"Try connecting again later or try restarting Netscape. You can try to connect later if you like.",
|
||||
"Try connecting again later.",
|
||||
"Try connecting again.",
|
||||
"You will not be able to connect to this site securely.",
|
||||
"You will probably be unable to connect to this site securely, or you can risk being stolen from.",
|
||||
"server to establish a data connection.",
|
||||
"unable to connect to server (TCP Error"
|
||||
};
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget status_form;
|
||||
Widget status_frame;
|
||||
|
||||
Widget progress_bar;
|
||||
Widget status_bar;
|
||||
Widget task_bar;
|
||||
|
||||
XfeAppCreateSimple("ProgressBarTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
status_frame = XfeCreateManagedFrame(form,"StatusFrame",NULL,0);
|
||||
|
||||
status_form = XfeCreateManagedForm(status_frame,"StatusForm",NULL,0);
|
||||
|
||||
task_bar = XtCreateManagedWidget("TaskBar",
|
||||
xmPushButtonWidgetClass,
|
||||
status_form,NULL,0);
|
||||
|
||||
progress_bar =
|
||||
XtVaCreateManagedWidget("ProgressBar",
|
||||
xfeProgressBarWidgetClass,
|
||||
status_form,
|
||||
XmNrightWidget, task_bar,
|
||||
NULL);
|
||||
|
||||
status_bar =
|
||||
XtVaCreateWidget("StatusBar",
|
||||
xfeLabelWidgetClass,
|
||||
status_form,
|
||||
XmNrightWidget, progress_bar,
|
||||
XmNtruncateProc, XfeGetTruncateXmStringProc(),
|
||||
XmNtruncateLabel, True,
|
||||
XmNshadowType, XmSHADOW_IN,
|
||||
NULL);
|
||||
|
||||
XtManageChild(status_bar);
|
||||
|
||||
StartSweep(progress_bar,SWEEP_INTERVAL);
|
||||
|
||||
StartMessages(status_bar,MESSAGE_INTERVAL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
StartSweep(Widget w,int interval)
|
||||
{
|
||||
XfeAppAddTimeOut(interval,SweepTimeout,(XtPointer) w);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
SweepTimeout(XtPointer client_data,XtIntervalId * id)
|
||||
{
|
||||
Widget w = (Widget) client_data;
|
||||
static Boolean direction = True;
|
||||
static int percent = 0;
|
||||
|
||||
char buf[2048];
|
||||
XmString xm_label = NULL;
|
||||
|
||||
if (direction)
|
||||
{
|
||||
percent++;
|
||||
|
||||
if (percent > MAX_PERCENT)
|
||||
{
|
||||
percent = MAX_PERCENT;
|
||||
direction = False;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
percent--;
|
||||
|
||||
if (percent < MIN_PERCENT)
|
||||
{
|
||||
percent = MIN_PERCENT;
|
||||
direction = True;
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(buf,"%d%% of 1234k",percent);
|
||||
|
||||
xm_label = XmStringCreateLocalized(buf);
|
||||
|
||||
XfeProgressBarSetComponents(w,xm_label,0,percent);
|
||||
|
||||
if (xm_label)
|
||||
{
|
||||
XmStringFree(xm_label);
|
||||
}
|
||||
|
||||
StartSweep(w,SWEEP_INTERVAL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
StartMessages(Widget w,int interval)
|
||||
{
|
||||
XfeAppAddTimeOut(interval,MessageTimeout,(XtPointer) w);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
MessageTimeout(XtPointer client_data,XtIntervalId * id)
|
||||
{
|
||||
Widget w = (Widget) client_data;
|
||||
static int i = 0;
|
||||
|
||||
char buf[2048];
|
||||
|
||||
if (!(i % 2))
|
||||
{
|
||||
sprintf(buf,"%s",_messages[i++ % XtNumber(_messages)]);
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[0] = '\0';
|
||||
i++;
|
||||
}
|
||||
|
||||
/* XfeProgressBarSetLabelPSZ(w,buf);*/
|
||||
XfeLabelSetStringPSZ(w,buf);
|
||||
|
||||
StartMessages(w,MESSAGE_INTERVAL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,254 @@
|
|||
/* -*- 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: TaskBarTestOne.c */
|
||||
/* Description: Test for XfeTaskBar widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
|
||||
#include <Xm/MwmUtil.h>
|
||||
|
||||
|
||||
#include <X11/Shell.h>
|
||||
|
||||
#include <Xfe/XfeP.h>
|
||||
|
||||
|
||||
static String names[] =
|
||||
{
|
||||
"One",
|
||||
"Two",
|
||||
"Three",
|
||||
"Four",
|
||||
"Five",
|
||||
"Six"
|
||||
};
|
||||
|
||||
static String icons_large[] =
|
||||
{
|
||||
"icons/bar_web.xpm",
|
||||
"icons/bar_news.xpm",
|
||||
"icons/bar_mail.xpm",
|
||||
"icons/bar_web.xpm",
|
||||
"icons/bar_news.xpm",
|
||||
"icons/bar_mail.xpm",
|
||||
};
|
||||
|
||||
#define LOGO_PIXMAP "icons/logo.xpm"
|
||||
#define DRAG_PIXMAP "icons/drag_tile.xpm"
|
||||
#define UNDOCK_PIXMAP "icons/undock.xpm"
|
||||
|
||||
static void undock_callback (Widget,XtPointer,XtPointer);
|
||||
static void dock_callback (Widget,XtPointer,XtPointer);
|
||||
static void tool_active_callback (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget create_docked_task_bar (String,Widget);
|
||||
static Widget create_foating_task_bar (String,Widget);
|
||||
|
||||
static Widget _floating_tb = NULL;
|
||||
static Widget _floating_shell = NULL;
|
||||
static Widget _docked_tb = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
|
||||
XfeAppCreateSimple("TaskBarTestOne",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
_docked_tb = create_docked_task_bar("DockedTaskBar",form);
|
||||
|
||||
_floating_tb = create_foating_task_bar("FloatingShell",_docked_tb);
|
||||
|
||||
XtAddCallback(_docked_tb,XmNactionCallback,undock_callback,NULL);
|
||||
|
||||
|
||||
#if 0
|
||||
XtAddCallback(_floating_tb,XmNactionCallback,dock_callback,NULL);
|
||||
#else
|
||||
XtAddCallback(_floating_tb,XmNcloseCallback,dock_callback,NULL);
|
||||
#endif
|
||||
|
||||
XtManageChild(_docked_tb);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_docked_task_bar(String name,Widget parent)
|
||||
{
|
||||
Widget tb;
|
||||
Cardinal i;
|
||||
Pixmap action_pixmap;
|
||||
|
||||
tb = XtVaCreateWidget(name,
|
||||
xfeTaskBarWidgetClass,
|
||||
parent,
|
||||
XmNshowActionButton, True,
|
||||
NULL);
|
||||
|
||||
action_pixmap = XfeGetPixmapFromFile(tb,UNDOCK_PIXMAP);
|
||||
|
||||
XtVaSetValues(tb,
|
||||
XmNactionPixmap, action_pixmap,
|
||||
NULL);
|
||||
|
||||
for (i = 0; i < XtNumber(names); i++)
|
||||
{
|
||||
Widget w;
|
||||
Pixmap p_normal;
|
||||
Pixmap p_raised;
|
||||
Pixmap p_armed;
|
||||
|
||||
w = XtVaCreateManagedWidget(names[i],
|
||||
xfeButtonWidgetClass,
|
||||
tb,
|
||||
NULL);
|
||||
|
||||
p_normal = XfeGetPixmapFromFile(w,icons_large[i]);
|
||||
p_raised = XfeGetPixmapFromFile(w,icons_large[i]);
|
||||
p_armed = XfeGetPixmapFromFile(w,icons_large[i]);
|
||||
|
||||
XtVaSetValues(w,
|
||||
XmNpixmap, p_normal,
|
||||
XmNraisedPixmap, p_raised,
|
||||
XmNarmedPixmap, p_armed,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(w,XmNactivateCallback,tool_active_callback,NULL);
|
||||
}
|
||||
|
||||
return tb;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_foating_task_bar(String name,Widget parent)
|
||||
{
|
||||
Widget tb;
|
||||
Pixmap action_pixmap;
|
||||
Pixmap drag_pixmap;
|
||||
|
||||
int mask;
|
||||
int mode;
|
||||
int func;
|
||||
|
||||
mask = MWM_DECOR_BORDER | MWM_DECOR_TITLE | MWM_DECOR_MENU;
|
||||
mode = MWM_INPUT_PRIMARY_APPLICATION_MODAL;
|
||||
func = MWM_FUNC_CLOSE | MWM_FUNC_MOVE;
|
||||
|
||||
/* mask = 0;*/
|
||||
|
||||
_floating_shell =
|
||||
XtVaCreatePopupShell(name,
|
||||
xmDialogShellWidgetClass,
|
||||
XfeAncestorFindTopLevelShell(parent),
|
||||
XmNmwmDecorations, mask,
|
||||
XmNmwmInputMode, mode,
|
||||
XmNmwmFunctions, func,
|
||||
XmNallowShellResize, True,
|
||||
XmNdeleteResponse, XmDO_NOTHING,
|
||||
NULL);
|
||||
|
||||
tb = create_docked_task_bar("FloatingTaskBar",_floating_shell);
|
||||
|
||||
XtVaSetValues(tb,XmNshowActionButton,False,NULL);
|
||||
|
||||
action_pixmap = XfeGetPixmapFromFile(tb,LOGO_PIXMAP);
|
||||
drag_pixmap = XfeGetPixmapFromFile(tb,DRAG_PIXMAP);
|
||||
|
||||
#if 0
|
||||
XtVaSetValues(tb,
|
||||
XmNactionPixmap, action_pixmap,
|
||||
XmNdragPixmap, drag_pixmap,
|
||||
NULL);
|
||||
#endif
|
||||
|
||||
return tb;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
tool_active_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
/* I want more siblings */
|
||||
XtVaCreateManagedWidget("New Task",
|
||||
xfeButtonWidgetClass,
|
||||
XtParent(w),
|
||||
NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
undock_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
static first_map = True;
|
||||
|
||||
XtUnmanageChild(_docked_tb);
|
||||
|
||||
#if 0
|
||||
XtResizeWidget(_floating_shell,
|
||||
_XfeWidth(_floating_tb),
|
||||
_XfeHeight(_floating_tb),
|
||||
0);
|
||||
#endif
|
||||
|
||||
if (first_map)
|
||||
{
|
||||
Widget top_shell = XfeAncestorFindTopLevelShell(_docked_tb);
|
||||
|
||||
Position x =
|
||||
XfeRootX(top_shell) +
|
||||
XfeWidth(top_shell) -
|
||||
XfeWidth(_floating_tb) -
|
||||
0;
|
||||
|
||||
Position y =
|
||||
XfeRootY(top_shell) +
|
||||
XfeHeight(top_shell) -
|
||||
XfeHeight(_floating_tb) -
|
||||
0;
|
||||
|
||||
XtVaSetValues(_floating_shell,
|
||||
XmNx, x,
|
||||
XmNy, y,
|
||||
NULL);
|
||||
|
||||
first_map = False;
|
||||
}
|
||||
|
||||
XtManageChild(_floating_tb);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
dock_callback(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
XtManageChild(_docked_tb);
|
||||
|
||||
XtUnmanageChild(_floating_tb);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,54 @@
|
|||
/* -*- 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: TaskBarTestTwo.c */
|
||||
/* Description: Test for XfeTaskBar widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget _docked_tb = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
|
||||
XfeAppCreateSimple("TaskBarTestTwo",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
_docked_tb = XfeCreateLoadedTaskBar(form,
|
||||
"DockedTaskBar",
|
||||
True,
|
||||
"task_",
|
||||
NULL,
|
||||
10,
|
||||
NULL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,152 @@
|
|||
! -*- Mode: Fundamental; tab-width: 8; 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.
|
||||
|
||||
!
|
||||
|
||||
ToolBarTest*MainForm.width: 500
|
||||
ToolBarTest*MainForm.height: 400
|
||||
ToolBarTest*MainForm.background: Gray70
|
||||
ToolBarTest*MainForm.shadowThickness: 0
|
||||
ToolBarTest*MainForm.shadowType: shadow_in
|
||||
|
||||
ToolBarTest*fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
ToolBarTest*labelFontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-*
|
||||
ToolBarTest*foreground: Black
|
||||
|
||||
|
||||
|
||||
|
||||
ToolBarTest*ToolBar.leftAttachment: attach_form
|
||||
ToolBarTest*ToolBar.topAttachment: attach_form
|
||||
ToolBarTest*ToolBar.bottomAttachment: attach_none
|
||||
ToolBarTest*ToolBar.rightAttachment: attach_none
|
||||
ToolBarTest*ToolBar.leftOffset: 5
|
||||
ToolBarTest*ToolBar.rightOffset: 5
|
||||
ToolBarTest*ToolBar.topOffset: 5
|
||||
ToolBarTest*ToolBar.shadowThickness: 1
|
||||
ToolBarTest*ToolBar.shadowType: shadow_out
|
||||
ToolBarTest*ToolBar.background: Gray70
|
||||
ToolBarTest*ToolBar.highlightThickness: 1
|
||||
ToolBarTest*ToolBar.highlighted: True
|
||||
ToolBarTest*ToolBar.buttonLayout: button_label_on_bottom
|
||||
|
||||
!ToolBarTest*ToolBar.borderWidth: 1
|
||||
!ToolBarTest*ToolBar.borderColor: Red
|
||||
|
||||
!ToolBarTest*ToolBar.orientation: vertical
|
||||
|
||||
ToolBarTest*ToolBar.spacing: 0
|
||||
|
||||
ToolBarTest*ToolBar.forceWidth: false
|
||||
|
||||
ToolBarTest*ToolBar.usePreferredWidth: true
|
||||
ToolBarTest*ToolBar.usePreferredHeight: true
|
||||
|
||||
!ToolBarTest*ToolBar.selectionPolicy: tool_bar_select_single
|
||||
!ToolBarTest*ToolBar.selectionModifiers: Shift
|
||||
ToolBarTest*ToolBar*editModifiers: Shift
|
||||
|
||||
|
||||
ToolBarTest*ToolBar.allowWrap: true
|
||||
|
||||
!ToolBarTest*XfeButton*bufferType: buffer_private
|
||||
ToolBarTest*XfeButton*traversalOn: no
|
||||
ToolBarTest*XfeButton*highlightThickness: 0
|
||||
ToolBarTest*XfeButton*shadowThickness: 1
|
||||
ToolBarTest*XfeButton*highlightColor: Gray20
|
||||
ToolBarTest*XfeButton*background: Gray70
|
||||
ToolBarTest*XfeButton*buttonType: button_push
|
||||
ToolBarTest*XfeButton*labelRaisedColor: red
|
||||
ToolBarTest*XfeButton*labelAlignment: alignment_beginning
|
||||
|
||||
|
||||
ToolBarTest*XfeLabel*background: Gray70
|
||||
ToolBarTest*XfeLabel*traversalOn: no
|
||||
ToolBarTest*XfeLabel*highlightThickness: 0
|
||||
ToolBarTest*XfeLabel*shadowThickness: 0
|
||||
ToolBarTest*XfeLabel*shadowType: XmSHADOW_IN
|
||||
ToolBarTest*XfeLabel*labelString:
|
||||
|
||||
|
||||
ToolBarTest*Two.leftOffset: 10
|
||||
ToolBarTest*Two.topOffset: 10
|
||||
|
||||
|
||||
ToolBarTest*Four.leftOffset: 10
|
||||
ToolBarTest*Four.topOffset: 10
|
||||
|
||||
ToolBarTest*Eight.leftOffset: 10
|
||||
ToolBarTest*Eight.topOffset: 10
|
||||
|
||||
|
||||
|
||||
ToolBarTest*vsep.orientation: horizontal
|
||||
ToolBarTest*vsep.shadowThickness: 3
|
||||
ToolBarTest*vsep.background: Gray70
|
||||
ToolBarTest*vsep.height: 10
|
||||
|
||||
ToolBarTest*hsep.orientation: vertical
|
||||
ToolBarTest*hsep.shadowThickness: 3
|
||||
ToolBarTest*hsep.background: Gray70
|
||||
ToolBarTest*hsep.width: 20
|
||||
|
||||
|
||||
ToolBarTest*Scale.leftAttachment: attach_form
|
||||
ToolBarTest*Scale.topAttachment: attach_widget
|
||||
ToolBarTest*Scale.bottomAttachment: attach_none
|
||||
ToolBarTest*Scale.rightAttachment: attach_none
|
||||
ToolBarTest*Scale.leftOffset: 5
|
||||
ToolBarTest*Scale.topOffset: 50
|
||||
ToolBarTest*Scale.topWidget: ToolBar
|
||||
ToolBarTest*Scale.orientation: horizontal
|
||||
|
||||
|
||||
ToolBarTest*Hide.leftAttachment: attach_widget
|
||||
ToolBarTest*Hide.topAttachment: attach_widget
|
||||
ToolBarTest*Hide.bottomAttachment: attach_none
|
||||
ToolBarTest*Hide.rightAttachment: attach_none
|
||||
ToolBarTest*Hide.leftOffset: 5
|
||||
ToolBarTest*Hide.topOffset: 50
|
||||
ToolBarTest*Hide.topWidget: ToolBar
|
||||
ToolBarTest*Hide.leftWidget: Scale
|
||||
ToolBarTest*Hide.leftOffset: 50
|
||||
ToolBarTest*Hide.labelString: Hide Indicator
|
||||
|
||||
!ToolBarTest*ToolBar*Indicator.background: Red
|
||||
|
||||
ToolBarTest*LocationToolBar.leftAttachment: attach_widget
|
||||
ToolBarTest*LocationToolBar.topAttachment: attach_widget
|
||||
ToolBarTest*LocationToolBar.bottomAttachment: attach_none
|
||||
ToolBarTest*LocationToolBar.rightAttachment: attach_none
|
||||
ToolBarTest*LocationToolBar.leftOffset: 5
|
||||
ToolBarTest*LocationToolBar.topOffset: 50
|
||||
ToolBarTest*LocationToolBar.topWidget: ToolBar
|
||||
ToolBarTest*LocationToolBar.leftWidget: Hide
|
||||
ToolBarTest*LocationToolBar.leftOffset: 50
|
||||
ToolBarTest*LocationToolBar.labelString: Hide Indicator
|
||||
ToolBarTest*LocationToolBar.buttonLayout: button_label_only
|
||||
ToolBarTest*LocationToolBar.childForceWidth: False
|
||||
ToolBarTest*LocationToolBar.childForceHeight: True
|
||||
ToolBarTest*LocationToolBar.childUsePreferredWidth: True
|
||||
ToolBarTest*LocationToolBar.childUsePreferredHeight: False
|
||||
|
||||
|
||||
ToolBarTest*LocationToolBar*Item1.labelString: None
|
||||
ToolBarTest*LocationToolBar*Item2.labelString: Beginning
|
||||
ToolBarTest*LocationToolBar*Item3.labelString: End
|
||||
ToolBarTest*LocationToolBar*Item4.labelString: Middle
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
/* -*- 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: ToolBarTest.c */
|
||||
/* Description: Test for XfeToolBar widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static void scale_cb (Widget,XtPointer,XtPointer);
|
||||
static void hide_cb (Widget,XtPointer,XtPointer);
|
||||
static void location_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static Widget _tool_bar = NULL;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget scale;
|
||||
Widget hide;
|
||||
Widget location_tool_bar;
|
||||
|
||||
XfeAppCreateSimple("ToolBarTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
_tool_bar = XfeCreateLoadedToolBar(form,
|
||||
"ToolBar",
|
||||
"Tool",
|
||||
50,
|
||||
/* 20, */
|
||||
0,
|
||||
XfeArmCallback,
|
||||
XfeDisarmCallback,
|
||||
XfeActivateCallback,
|
||||
NULL);
|
||||
|
||||
scale = XtVaCreateManagedWidget("Scale",
|
||||
xmScaleWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(scale,XmNvalueChangedCallback,scale_cb,NULL);
|
||||
XtAddCallback(scale,XmNdragCallback,scale_cb,NULL);
|
||||
|
||||
hide = XtVaCreateManagedWidget("Hide",
|
||||
xmPushButtonWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtAddCallback(hide,XmNactivateCallback,hide_cb,NULL);
|
||||
|
||||
location_tool_bar = XfeCreateLoadedToolBar(form,
|
||||
"LocationToolBar",
|
||||
"Item",
|
||||
4,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
location_cb,
|
||||
NULL);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
scale_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
int value;
|
||||
|
||||
assert( XfeIsAlive(_tool_bar) );
|
||||
|
||||
XmScaleGetValue(w,&value);
|
||||
|
||||
value = value / 10;
|
||||
|
||||
printf("%s(%s,%d)\n",__FUNCTION__,XtName(w),value);
|
||||
|
||||
XtVaSetValues(_tool_bar,XmNindicatorPosition,value,NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
hide_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
assert( XfeIsAlive(_tool_bar) );
|
||||
|
||||
printf("%s(%s)\n",__FUNCTION__,XtName(w));
|
||||
|
||||
XtVaSetValues(_tool_bar,XmNindicatorPosition,XmINDICATOR_DONT_SHOW,NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
location_cb(Widget w,XtPointer client_data,XtPointer call_data)
|
||||
{
|
||||
unsigned char location = XmINDICATOR_LOCATION_NONE;
|
||||
|
||||
assert( XfeIsAlive(_tool_bar) );
|
||||
|
||||
if (strcmp(XtName(w),"Item1") == 0)
|
||||
{
|
||||
location = XmINDICATOR_LOCATION_NONE;
|
||||
}
|
||||
else if (strcmp(XtName(w),"Item2") == 0)
|
||||
{
|
||||
location = XmINDICATOR_LOCATION_BEGINNING;
|
||||
}
|
||||
else if (strcmp(XtName(w),"Item3") == 0)
|
||||
{
|
||||
location = XmINDICATOR_LOCATION_END;
|
||||
}
|
||||
else if (strcmp(XtName(w),"Item4") == 0)
|
||||
{
|
||||
location = XmINDICATOR_LOCATION_MIDDLE;
|
||||
}
|
||||
|
||||
printf("%s(%s) location = %s\n",
|
||||
__FUNCTION__,
|
||||
XtName(w),
|
||||
XfeDebugRepTypeValueToName(XmRToolBarIndicatorLocation,location));
|
||||
|
||||
XtVaSetValues(_tool_bar,XmNindicatorLocation,location,NULL);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,182 @@
|
|||
/* -*- 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: ToolBoxTest.c */
|
||||
/* Description: Test for XfeToolBox widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
static Widget create_tool_item (Widget,String,Cardinal);
|
||||
static void close_cb (Widget,XtPointer,XtPointer);
|
||||
static void open_cb (Widget,XtPointer,XtPointer);
|
||||
static void new_item_cb (Widget,XtPointer,XtPointer);
|
||||
static void snap_cb (Widget,XtPointer,XtPointer);
|
||||
static void swap_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
static void button_cb (Widget,XtPointer,XtPointer);
|
||||
|
||||
|
||||
static String tool_names[] =
|
||||
{
|
||||
"red",
|
||||
"yellow",
|
||||
"green",
|
||||
#if 1
|
||||
"blue",
|
||||
"orange",
|
||||
"purple",
|
||||
"pink",
|
||||
"aliceblue"
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
static int tool_heights[] =
|
||||
{
|
||||
2,
|
||||
4,
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
10,
|
||||
8
|
||||
};
|
||||
|
||||
#define NUM_TOOLS XtNumber(tool_names)
|
||||
|
||||
static Widget tool_widgets[NUM_TOOLS];
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
|
||||
Widget tb;
|
||||
Cardinal i;
|
||||
|
||||
XfeAppCreateSimple("ToolBoxTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
tb = XfeCreateLoadedToolBox(form,"ToolBox",NULL,0);
|
||||
|
||||
for (i = 0; i < NUM_TOOLS; i++)
|
||||
{
|
||||
tool_widgets[i] = create_tool_item(tb,
|
||||
tool_names[i],
|
||||
tool_heights[i]);
|
||||
}
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static Widget
|
||||
create_tool_item(Widget parent,String name,Cardinal nitems)
|
||||
{
|
||||
Widget tool_item;
|
||||
Widget tool_bar;
|
||||
Widget logo;
|
||||
|
||||
tool_item =
|
||||
XtVaCreateManagedWidget(name,
|
||||
xfeToolItemWidgetClass,
|
||||
parent,
|
||||
XmNusePreferredHeight, True,
|
||||
XmNusePreferredWidth, False,
|
||||
XmNbackground, XfeGetPixel(name),
|
||||
NULL);
|
||||
|
||||
logo =
|
||||
XtVaCreateManagedWidget("Logo",
|
||||
xfeLogoWidgetClass,
|
||||
tool_item,
|
||||
XmNbackground, XfeGetPixel(name),
|
||||
NULL);
|
||||
|
||||
tool_bar = XfeCreateLoadedToolBar(tool_item,
|
||||
"ToolBar",
|
||||
"Item",
|
||||
nitems,
|
||||
nitems / 10,
|
||||
XfeArmCallback,
|
||||
XfeDisarmCallback,
|
||||
XfeActivateCallback,
|
||||
NULL);
|
||||
|
||||
XtVaSetValues(tool_bar,XmNbackground,XfeGetPixel(name),NULL);
|
||||
|
||||
XfeToolBoxAddDragDescendant(parent,tool_item);
|
||||
XfeToolBoxAddDragDescendant(parent,tool_bar);
|
||||
XfeToolBoxAddDragDescendant(parent,logo);
|
||||
|
||||
return tool_item;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
snap_cb(Widget w,XtPointer clien_data,XtPointer call_data)
|
||||
{
|
||||
XfeToolBoxCallbackStruct * cbs = (XfeToolBoxCallbackStruct *) call_data;
|
||||
|
||||
printf("snap (%s at %d)\n",XtName(cbs->item),cbs->index);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
new_item_cb(Widget w,XtPointer clien_data,XtPointer call_data)
|
||||
{
|
||||
XfeToolBoxCallbackStruct * cbs = (XfeToolBoxCallbackStruct *) call_data;
|
||||
|
||||
printf("new_item (%s at %d)\n",XtName(cbs->item),cbs->index);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
close_cb(Widget w,XtPointer clien_data,XtPointer call_data)
|
||||
{
|
||||
XfeToolBoxCallbackStruct * cbs = (XfeToolBoxCallbackStruct *) call_data;
|
||||
|
||||
printf("close (%s at %d)\n",XtName(cbs->item),cbs->index);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
open_cb(Widget w,XtPointer clien_data,XtPointer call_data)
|
||||
{
|
||||
XfeToolBoxCallbackStruct * cbs = (XfeToolBoxCallbackStruct *) call_data;
|
||||
|
||||
printf("open (%s at %d)\n",XtName(cbs->item),cbs->index);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void
|
||||
swap_cb(Widget w,XtPointer clien_data,XtPointer call_data)
|
||||
{
|
||||
XfeToolBoxSwapCallbackStruct * cbs =
|
||||
(XfeToolBoxSwapCallbackStruct *) call_data;
|
||||
|
||||
printf("swap (%s with %s from %d to %d)\n",
|
||||
XtName(cbs->swapped),XtName(cbs->displaced),
|
||||
cbs->from_index,cbs->to_index);
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
|
@ -0,0 +1,64 @@
|
|||
/* -*- 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: ToolScrollTest.c */
|
||||
/* Description: Test for XfeToolScroll widget. */
|
||||
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <Xfe/XfeTest.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
int
|
||||
main(int argc,char *argv[])
|
||||
{
|
||||
Widget form;
|
||||
Widget frame;
|
||||
Widget tool_scroll;
|
||||
Widget tool_bar;
|
||||
|
||||
XfeAppCreateSimple("ToolScrollTest",&argc,argv,"MainFrame",&frame,&form);
|
||||
|
||||
tool_scroll = XtVaCreateManagedWidget("ToolScroll",
|
||||
xfeToolScrollWidgetClass,
|
||||
form,
|
||||
NULL);
|
||||
|
||||
XtVaGetValues(tool_scroll,XmNtoolBar,&tool_bar,NULL);
|
||||
|
||||
XfeLoadToolBar(tool_bar,
|
||||
"Tool",
|
||||
15,
|
||||
3,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
XfeOrientedChildrenSetAllowDrag(tool_bar,True);
|
||||
|
||||
XtPopup(frame,XtGrabNone);
|
||||
|
||||
XfeAppMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
Загрузка…
Ссылка в новой задаче