зеркало из 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
|
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||||
# Reserved.
|
# Reserved.
|
||||||
|
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
#
|
||||||
|
# Name: Makefile
|
||||||
|
# Description: Makefile for Xfe Widgets tests
|
||||||
|
# Author: Ramiro Estrugo <ramiro@netscape.com>
|
||||||
|
#
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
DEPTH = ../../../..
|
DEPTH = ../../../..
|
||||||
|
|
||||||
ifdef XFE_WIDGETS_BUILD_UNUSED
|
DIRS = \
|
||||||
UNUSED_CSRCS = \
|
Xfe \
|
||||||
ChromeTest.c \
|
XmL
|
||||||
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)/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;
|
||||||
|
}
|
||||||
|
/*----------------------------------------------------------------------*/
|
Загрузка…
Ссылка в новой задаче