e16/config/definitions

1270 lines
31 KiB
Plaintext

/*******************************************************************/
/* This is Enlightenment's definition macro file */
/* This file determines keyword values and conveience macros for E */
/* This file is sourced for every file E has to parse */
/*******************************************************************/
#ifndef __E16_DEFINITIONS__
#define __E16_DEFINITIONS__
/* section begin/end stuff */
#define __BGN 999
#define __END 1000
#define __E_CFG_VERSION 1001
/* booleans */
#define __OFF 0
#define __ON 1
#define __NO 0
#define __YES 1
/* focus mode options */
#define __POINTER 0
#define __SLOPPY 1
#define __CLICK_TO_FOCUS 2
/* move and resize mode */
#define __OPAQUE 0
#define __LINES 1
#define __BOX 2
#define __SHADE 3
#define __BOXSHADE 4
/* for move mode only */
#define __TRANSLUCENT 5
/* move and resize geometry display modes */
#define __NO_GEOMINFO 0
#define __CENTER_GEOMINFO 1
#define __CORNER_GEOMINFO 2
/* positioning and direction */
#define __LEFT 0
#define __RIGHT 1
#define __TOP 2
#define __BOTTOM 3
#define __UP 2
#define __DOWN 3
/* attributes */
#define __FLAG_TITLE 1
#define __FLAG_MINI_ICON 2
#define __FLAG_TITLE_AND_ICON 3
/* fill rules for imageclasses */
#define __SCALE 0
#define __STRETCH 0
#define __TILE_H 1
#define __TILE_V 2
#define __TILE 3
#define __INTEGER_TILE_H 4
#define __INTEGER_TILE_V 8
#define __INTEGER_TILE 12
/* major sections in the config */
#define __CONTROL 0
#define __TCLASS 1
#define __MENU 2
#define __BORDER 3
#define __BUTTON 4
#define __DESKTOP 5
#define __SOUND 9
#define __ACLASS 11
#define __ICLASS 12
#define __MATCH_WINDOW 14
#define __COLOR_MODIFIER 15
#define __SLIDEOUT 16
#define __ICONBOX 19
#define __FONTS 21
#define __MENU_STYLE 699
#define __BORDER_PART 505
#define __TOOLTIP_TEXT 17
#define __TOOLTIP 17
#define __NAME 100
#define __ORIENTATION 200
#define __JUSTIFICATION 201
#define __DRAWING_EFFECT 204
#define __FORGROUND_COLOR 205
#define __BACKGROUND_COLOR 206
#define __FONT_TO_RIGHT 0
#define __FONT_TO_DOWN 1
#define __FONT_TO_UP 2
#define __FONT_TO_LEFT 3
#define __EFFECT_NONE 0
#define __EFFECT_NORMAL 0
#define __EFFECT_SHADOW 1
#define __EFFECT_OUTLINE 2
#define __NORMAL 351
#define __CLICKED 352
#define __HILITED 353
#define __NORMAL_ACTIVE 354
#define __CLICKED_ACTIVE 355
#define __HILITED_ACTIVE 356
#define __EDGE_SCALING 357
#define __PADDING 358
#define __NORMAL_STICKY 359
#define __CLICKED_STICKY 360
#define __HILITED_STICKY 361
#define __NORMAL_ACTIVE_STICKY 362
#define __NORMAL_ACTIVE_CLICKED 363
#define __NORMAL_ACTIVE_HILITED 364
#define __CLICKED_ACTIVE_STICKY 363
#define __HILITED_ACTIVE_STICKY 364
#define __MODIFIER 370
#define __FILLRULE 371
#define __TRANSPARENT 372
#define __ROTATE 373
#define __ROTATE_90 1
#define __ROTATE_180 2
#define __ROTATE_270 3
#define __FLIP 373
#define __FLIP_HORIZONTAL 4
#define __FLIP_90 5
#define __FLIP_VERTICAL 6
#define __FLIP_270 7
#define __BEVEL 374
#define __BEVEL_AMIGA 1
#define __BEVEL_MOTIF 2
#define __BEVEL_NEXT 3
#define __BEVEL_DOUBLE 4
#define __BEVEL_WIDEDOUBLE 5
#define __BEVEL_THINPOINT 6
#define __BEVEL_THICKPOINT 7
#define __KEEP_ON_TOP 453
#define __FLAGS 454
#define __IS_A_REGION 455
#define __MIN_WIDTH 456
#define __MAX_WIDTH 457
#define __TOPLEFT_ORIGIN 467
#define __TOPLEFT_X_PERCENTAGE 458
#define __TOPLEFT_X_ABSOLUTE 459
#define __TOPLEFT_Y_PERCENTAGE 460
#define __TOPLEFT_Y_ABSOLUTE 461
#define __BOTTOMRIGHT_ORIGIN 462
#define __BOTTOMRIGHT_X_PERCENTAGE 463
#define __BOTTOMRIGHT_X_ABSOLUTE 464
#define __BOTTOMRIGHT_Y_PERCENTAGE 465
#define __BOTTOMRIGHT_Y_ABSOLUTE 466
#define __MIN_HEIGHT 468
#define __MAX_HEIGHT 469
#define __KEEP_WHEN_SHADED 470
#define __BORDER_SIZE_LEFT 501
#define __BORDER_SIZE_RIGHT 502
#define __BORDER_SIZE_TOP 503
#define __BORDER_SIZE_BOTTOM 504
#define __SHADE_DIRECTION 506
#define __CHANGES_SHAPE 507
#define __BORDER_GROUP_NAME 508
#define __X_ORIGIN 528
#define __Y_ORIGIN 529
#define __X_ABSOLUTE 530
#define __X_PERCENTAGE 531
#define __Y_ABSOLUTE 532
#define __Y_PERCENTAGE 533
#define __X_SIZE_PERCENTAGE 534
#define __Y_SIZE_PERCENTAGE 535
#define __X_SIZE_ABSOLUTE 536
#define __Y_SIZE_ABSOLUTE 537
#define __USE_SIZE_OF_IMAGE 538
#define __PUT_ON_DESKTOP 539
#define __MAKE_STICKY 540
#define __IS_INTERNAL 541
#define __SHOW_BY_DEFAULT 542
#define __LABEL 543
#define __SOLID_COLOR 560
#define __BACKGROUND_LAYER 561
#define __FORGROUND_LAYER 562
#define __USE_ON_DESKTOP 564
#define __DESKTOP_ALL -1
#define __TYPE_NORMAL 5
#define __TYPE_GLOBAL 7
/* possible actions that can be performed */
#define __A_EXEC exec
#define __A_CMD
#define __A_NONE nop
#define __A_EXIT exit
#define __A_ALERT alert
#define __A_SHOW_MENU menus show
#define __A_HIDE_MENU menus hide
#define __A_CLEANUP desk arrange
#define __A_ABOUT about
#define __A_MOVE wop * mo ptr
#define __A_RESIZE wop * sz ptr
#define __A_RAISE wop * ra
#define __A_LOWER wop * lo
#define __A_RESIZE_H wop * sz ptr-h
#define __A_RESIZE_V wop * sz ptr-v
#define __A_KILL wop * close
#define __A_KILL_NASTY wop * kill
#define __A_STICK wop * st
#define __A_ICONIFY wop * ic
#define __A_SHADE wop * sh
#define __A_MAX_HEIGHT wop * th
#define __A_MAX_WIDTH wop * tw
#define __A_MAX_SIZE wop * ts
#define __A_SET_LAYER wop * la
#define __A_SNAPSHOT remember * all
#define __A_ZOOM wop * zoom
#define __A_FULLSCREEN wop * fs
#define __A_RAISE_LOWER wop * raiselower
#define __A_SET_BORDER wop * bo
#define __A_ICONIFY_NG wop % ic
#define __A_KILL_NG wop % close
#define __A_MOVE_NG wop % mo ptr
#define __A_RAISE_NG wop % ra
#define __A_LOWER_NG wop % lo
#define __A_STICK_NG wop % st
#define __A_SHADE_NG wop % sh
#define __A_RAISE_LOWER_NG wop % raiselower
#define __A_SET_BORDER_NG wop % bo
#define __A_SKIPFOCUS wop * skipfocus
#define __A_SKIPTASK wop * skiptask
#define __A_SKIPWINLIST wop * skipwinlist
#define __A_NEVERFOCUS wop * no_wm_focus
#define __A_SKIPLISTS wop * skiplists
#define __A_SEND_TO_NEXT_DESK wop * desk next
#define __A_SEND_TO_PREV_DESK wop * desk prev
#define __A_MOVE_WIN_TO_AREA wop * area
#define __A_MOVE_WIN_BY_AREA wop * arel
#define __A_DESKTOP_NEXT desk next
#define __A_DESKTOP_PREV desk prev
#define __A_DESKTOP_RAISE desk raise
#define __A_DESKTOP_LOWER desk lower
#define __A_DESKTOP_DRAG desk drag
#define __A_DESKTOP_INPLACE desk this
#define __A_GOTO_DESK desk goto
#define __A_AREA_SET area set
#define __A_AREA_MOVE_BY area move
#define __A_DRAG_BUTTON button mo ptr
#define __A_HIDESHOW_BUTTON button_show
#define __A_SLIDEOUT slideout
#define __A_FOCUS_NEXT focus next
#define __A_FOCUS_PREV focus prev
#define __A_BACKGROUND_SET bg use
#define __A_START_GROUP gop * start
#define __A_ADD_TO_GROUP gop * add
#define __A_REMOVE_FROM_GROUP gop * del
#define __A_BREAK_GROUP gop * break
#define __A_SHOWHIDE_GROUP gop * showhide
#define __A_CREATE_ICONBOX ibox new
#define __MODIFIER_KEY 101
#define __TYPE 102
#define __ALLOW_ANY_MODIFIER_KEYS 103
#define __ACTION 104
#define __KEY 427
#define __EVENT 428
#define __ALLOW_ANY_BUTTON 930
#define __ALLOW_ANY_KEY 931
#define __NEXT_ACTION 105
#define __TOOLTIP_ACTION_TEXT 107
#define __NONE 0
#define __SHIFT 900
#define __LOCK 901
#define __CTRL 902
#define __ALT 903
#define __META2 904
#define __META3 905
#define __WINDOWS_KEY 906
#define __META5 907
#define __CTRL_ALT 910
#define __CTRL_SHIFT 911
#define __ALT_SHIFT 912
#define __CTRL_ALT_SHIFT 913
#define __CTRL_META4 914
#define __SHIFT_META4 915
#define __CTRL_META4_SHIFT 916
#define __CTRL_META5 917
#define __SHIFT_META5 918
#define __CTRL_META5_SHIFT 919
#define __WINDOWS_SHIFT 920
#define __WINDOWS_CTRL 921
#define __WINDOWS_ALT 922
#define __MOUSE_PRESS 0
#define __MOUSE_RELEASE 1
#define __MOUSE_ENTER 2
#define __MOUSE_LEAVE 3
#define __KEY_PRESS 4
#define __KEY_RELEASE 5
#define __DOUBLE_CLICK 6
#define __FOCUS_IN 7
#define __FOCUS_OUT 8
#define __USE_BORDER 480
#define __HAS_NAME 481
#define __HAS_CLASS 482
#define __HAS_TITLE 483
#define __IS_IN_WIDTH_RANGE 484
#define __IS_IN_HEIGHT_RANGE 485
#define __IS_TRANSIENT 486
#define __CANNOT_RESIZE_HORIZONTALLY 487
#define __CANNOT_RESIZE_VERTICALLY 488
#define __IS_SHAPED 489
#define __USE_ICON 490
#define __MAKE_WINDOW_STICKY 492
#define __RED 600
#define __GREEN 601
#define __BLUE 602
#define __SLIDE_DIRECTION 620
#define __TOOLTIP_ICON 640
#define __BUBBLE1_ICLASS 641
#define __BUBBLE2_ICLASS 642
#define __BUBBLE3_ICLASS 643
#define __BUBBLE4_ICLASS 644
#define __DISTANCE 645
#define __TOOLTIP_HELP_ICON 646
#define __BG_ICLASS 700
#define __ITEM_ICLASS 701
#define __SUBMENU_ICLASS 702
#define __USE_ITEM_BACKGROUNDS 703
#define __MAXIMUM_NUMBER_OF_COLUMNS 704
#define __MAXIMUM_NUMBER_OF_ROWS 705
#define __STYLE 706
#define __MENU_ITEM 707
#define __SUMENU 708
#define __MENU_ACTION 709
#define __MENU_PREBUILT 710
#define __MENU_TITLE 711
#define __CURSOR 800
#define __BG_COLOR 801
#define __FG_COLOR 802
#define __XBM_FILE 803
#define __NATIVE_ID 804
#define __TRANSPARENCY 2001
#define __SHOW_NAMES 2002
#define __ICON_SIZE 2003
#define __ICON_MODE 2004
#define __SCROLLBAR_SIDE 2005
#define __SCROLLBAR_ARROWS 2006
#define __AUTOMATIC_RESIZE 2007
#define __SHOW_ICON_BASE 2008
#define __SCROLLBAR_AUTOHIDE 2009
#define __COVER_HIDE 2010
#define __RESIZE_ANCHOR 2011
#define __ICONBOX_ANIMATE 2012
#define __EXTRA_HEAD 2013
#define __HORIZONTAL 0
#define __VERTICAL 1
#define __BAR_TOP 0
#define __BAR_LEFT 0
#define __BAR_BOTTOM 1
#define __BAR_RIGHT 1
#define __START 0
#define __BOTH 1
#define __FINISH 2
#define __NEITHER 3
/* Native cursor definitions */
#define XC_NONE 999
#define XC_x_CURSOR 0
#define XC_ARROW 2
#define XC_BASED_ARROW_DOWN 4
#define XC_BASED_ARROW_UP 6
#define XC_BOAT 8
#define XC_BOGOSITY 10
#define XC_BOTTOM_LEFT_CORNER 12
#define XC_BOTTOM_RIGHT_CORNER 14
#define XC_BOTTOM_SIDE 16
#define XC_BOTTOM_TEE 18
#define XC_BOX_SPIRAL 20
#define XC_CENTER_PTR 22
#define XC_CIRCLE 24
#define XC_CLOCK 26
#define XC_COFFEE_MUG 28
#define XC_CROSS 30
#define XC_CROSS_REVERSE 32
#define XC_CROSSHAIR 34
#define XC_DIAMOND_CROSS 36
#define XC_DOT 38
#define XC_DOTBOX 40
#define XC_DOUBLE_ARROW 42
#define XC_DRAFT_LARGE 44
#define XC_DRAFT_SMALL 46
#define XC_DRAPED_BOX 48
#define XC_EXCHANGE 50
#define XC_FLEUR 52
#define XC_GOBBLER 54
#define XC_GUMBY 56
#define XC_HAND1 58
#define XC_HAND2 60
#define XC_HEART 62
#define XC_ICON 64
#define XC_IRON_CROSS 66
#define XC_LEFT_PTR 68
#define XC_LEFT_SIDE 70
#define XC_LEFT_TEE 72
#define XC_LEFTBUTTON 74
#define XC_LL_ANGLE 76
#define XC_LR_ANGLE 78
#define XC_MAN 80
#define XC_MIDDLEBUTTON 82
#define XC_MOUSE 84
#define XC_PENCIL 86
#define XC_PIRATE 88
#define XC_PLUS 90
#define XC_QUESTION_ARROW 92
#define XC_RIGHT_PTR 94
#define XC_RIGHT_SIDE 96
#define XC_RIGHT_TEE 98
#define XC_RIGHTBUTTON 100
#define XC_RTL_LOGO 102
#define XC_SAILBOAT 104
#define XC_SB_DOWN_ARROW 106
#define XC_SB_H_DOUBLE_ARROW 108
#define XC_SB_LEFT_ARROW 110
#define XC_SB_RIGHT_ARROW 112
#define XC_SB_UP_ARROW 114
#define XC_SB_V_DOUBLE_ARROW 116
#define XC_SHUTTLE 118
#define XC_SIZING 120
#define XC_SPIDER 122
#define XC_SPRAYCAN 124
#define XC_STAR 126
#define XC_TARGET 128
#define XC_TCROSS 130
#define XC_TOP_LEFT_ARROW 132
#define XC_TOP_LEFT_CORNER 134
#define XC_TOP_RIGHT_CORNER 136
#define XC_TOP_SIDE 138
#define XC_TOP_TEE 140
#define XC_TREK 142
#define XC_UL_ANGLE 144
#define XC_UMBRELLA 146
#define XC_UR_ANGLE 148
#define XC_WATCH 150
#define XC_XTERM 152
/*******************************************************************/
/* Convenience macros to make configuring E SO much simpler */
/*******************************************************************/
/*********** Window match convenience macros ***********************/
#define BEGIN_BORDER_MATCH(name, border) \
__MATCH_WINDOW __BGN;\
__NAME "name";\
__USE_BORDER border
#define HAS_NAME(name) \
__HAS_NAME name
#define HAS_CLASS(class) \
__HAS_CLASS class
#define HAS_TITLE(title) \
__HAS_TITLE title
#define IS_IN_WIDTH_RANGE(min, max) \
__IS_IN_WIDTH_RANGE min max
#define IS_IN_HEIGHT_RANGE(min, max) \
__IS_IN_HEIGHT_RANGE min max
#define CANNOT_RESIZE_HORIZONTALLY \
__CANNOT_RESIZE_HORIZONTALLY __ON
#define CANNOT_RESIZE_VERTICALLY \
__CANNOT_RESIZE_VERTICALLY __ON
#define MAKE_WINDOW_STICKY \
__MAKE_WINDOW_STICKY __ON
#define IS_TRANSIENT \
__IS_TRANSIENT __ON
#define IS_SHAPED \
__IS_SHAPED __ON
#define USE_ICON(iclass) \
__USE_ICON iclass
#define END_BORDER_MATCH \
__END
#define USE_BORDER_FOR_CLIENT_WITH_TITLE(title, border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__HAS_TITLE title;\
__END
#define USE_BORDER_FOR_CLIENT_WITH_NAME(name, border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__HAS_NAME name;\
__END
#define USE_BORDER_FOR_CLIENT_WITH_CLASS(class, border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__HAS_CLASS class;\
__END
#define USE_BORDER_FOR_TRANSIENT_CLIENT(border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__IS_TRANSIENT __ON;\
__END
#define USE_BORDER_FOR_UNRESIZABLE_CLIENT(border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__CANNOT_RESIZE_HORIZONTALLY __ON;\
__CANNOT_RESIZE_VERTICALLY __ON;\
__END
#define USE_BORDER_FOR_SHAPED_CLIENT(border) \
__MATCH_WINDOW __BGN;\
__NAME border"_MATCH";\
__USE_BORDER border;\
__IS_SHAPED __ON;\
__END
#define USE_ICON_IMAGE_FOR_CLIENT_TITLE(title, image) \
__MATCH_WINDOW __BGN;\
__NAME image"_MATCH";\
__USE_ICON image;\
__HAS_TITLE title;\
__END
#define USE_ICON_IMAGE_FOR_CLIENT_NAME(name, image) \
__MATCH_WINDOW __BGN;\
__NAME image"_MATCH";\
__USE_ICON image;\
__HAS_NAME name;\
__END
#define USE_ICON_IMAGE_FOR_CLIENT_CLASS(class, image) \
__MATCH_WINDOW __BGN;\
__NAME image"_MATCH";\
__USE_ICON image;\
__HAS_CLASS class;\
__END
#define MAKE_WINDOW_STICKY_BY_TITLE(title) \
__MATCH_WINDOW __BGN;\
__NAME title_"STICKYTITLE";\
__MAKE_WINDOW_STICKY 1;\
__HAS_TITLE title;\
__END
#define MAKE_WINDOW_STICKY_BY_CLASS(class) \
__MATCH_WINDOW __BGN;\
__NAME class"_STICKYCLASS";\
__MAKE_WINDOW_STICKY 1;\
__HAS_CLASS class;\
__END
#define MAKE_WINDOW_STICKY_BY_NAME(name) \
__MATCH_WINDOW __BGN;\
__NAME name"_STICKYNAME";\
__MAKE_WINDOW_STICKY 1;\
__HAS_NAME name;\
__END
/* Obsolete windowmatch macros */
#define USE_ICON_IMAGECLASS_FOR_CLIENT_TITLE(title, iclass)
#define USE_ICON_IMAGECLASS_FOR_CLIENT_NAME(name, iclass)
#define USE_ICON_IMAGECLASS_FOR_CLIENT_CLASS(class, iclass)
#define USE_ICON_IMAGES_FOR_CLIENT_TITLE(title, image, image2, image3)
#define USE_ICON_IMAGES_FOR_CLIENT_NAME(name, image, image2, image3)
#define WINDOW_ON_DESK_BY_NAME(name,desk)
#define WINDOW_ON_DESK_BY_TITLE(title,desk)
#define WINDOW_ON_DESK_BY_CLASS(class,desk)
/*********** Menu creation macros **********************************/
#define BEGIN_NEW_DIRSCAN_MENU(name, style, directory) \
__MENU __BGN;\
__MENU_PREBUILT name style "dirscan" directory
#define BEGIN_NEW_GNOME_MENU(name, style, directory) \
__MENU __BGN;\
__MENU_PREBUILT name style "gnome" directory
#define BEGIN_NEW_BORDERS_MENU(name, style) \
__MENU __BGN;\
__MENU_PREBUILT name style "borders"
#define BEGIN_NEW_THEMES_MENU(name, style) \
__MENU __BGN;\
__MENU_PREBUILT name style "themes"
#define BEGIN_NEW_WINDOWLIST_MENU(name, style) \
__MENU __BGN;\
__MENU_PREBUILT name style "windowlist"
#define BEGIN_NEW_DESKTOPWINDOWLIST_MENU(name, style) \
__MENU __BGN;\
__MENU_PREBUILT name style "desktopwindowlist"
#define ADD_MENU_TITLE(name) \
__MENU_TITLE name
#define BEGIN_NEW_FILE_MENU(name, style, thefile) \
__MENU __BGN;\
__MENU_PREBUILT name style "file" thefile
#define NORMAL_MENU_STYLE_VERTICAL(name, border, tclass, bg_iclass, item_iclass, submenu_iclass, max_items) \
__MENU_STYLE __BGN;\
__NAME name;\
__BORDER border;\
__TCLASS tclass;\
__BG_ICLASS bg_iclass;\
__ITEM_ICLASS item_iclass;\
__SUBMENU_ICLASS submenu_iclass;\
__USE_ITEM_BACKGROUNDS __OFF;\
__MAXIMUM_NUMBER_OF_ROWS max_items;\
__END
#define NORMAL_MENU_STYLE_HORIZONTAL(name, border, tclass, bg_iclass, item_iclass, submenu_iclass, max_items) \
__MENU_STYLE __BGN;\
__NAME name;\
__BORDER border;\
__TCLASS tclass;\
__BG_ICLASS bg_iclass;\
__ITEM_ICLASS item_iclass;\
__SUBMENU_ICLASS submenu_iclass;\
__USE_ITEM_BACKGROUNDS __OFF;\
__MAXIMUM_NUMBER_OF_COLUMNS max_items;\
__END
#define NEXTSTEP_MENU_STYLE_VERTICAL(name, border, tclass, item_iclass, submenu_iclass, max_items) \
__MENU_STYLE __BGN;\
__NAME name;\
__BORDER border;\
__TCLASS tclass;\
__ITEM_ICLASS item_iclass;\
__SUBMENU_ICLASS submenu_iclass;\
__USE_ITEM_BACKGROUNDS __ON;\
__MAXIMUM_NUMBER_OF_ROWS max_items;\
__END
#define NEXTSTEP_MENU_STYLE_HORIZONTAL(name, border, tclass, item_iclass, submenu_iclass, max_items) \
__MENU_STYLE __BGN;\
__NAME name;\
__BORDER border;\
__TCLASS tclass;\
__ITEM_ICLASS item_iclass;\
__SUBMENU_ICLASS submenu_iclass;\
__USE_ITEM_BACKGROUNDS __ON;\
__MAXIMUM_NUMBER_OF_COLUMNS max_items;\
__END
#define BEGIN_NEW_MENU(name, style) \
__MENU __BGN;\
__NAME name;\
__STYLE style
#define END_MENU \
__END
#define ADD_MENU_ITEM(text, icon_iclass, action, parameters) \
__MENU_ITEM icon_iclass text;\
__MENU_ACTION action parameters
#define ADD_MENU_TEXT_ITEM(text, action, parameters) \
__MENU_ITEM "NULL" text;\
__MENU_ACTION action parameters
#define ADD_MENU_ICON_ITEM(icon_iclass, action, parameters) \
__MENU_ITEM icon_iclass;\
__MENU_ACTION action parameters
#define ADD_MENU_SUBMENU_ITEM(text, icon_iclass, submenu_name) \
__SUMENU submenu_name icon_iclass text
#define ADD_MENU_SUBMENU_TEXT_ITEM(text, submenu_name) \
__SUMENU submenu_name "NULL" text
#define ADD_MENU_SUBMENU_ICON_ITEM(icon_iclass, submenu_name) \
__SUMENU submenu_name icon_iclass
/*********** Tooltip creation macros *******************************/
#define DEFINE_TOOLTIP(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS main_iclass;\
__BUBBLE1_ICLASS cloud1_iclass;\
__BUBBLE2_ICLASS cloud2_iclass;\
__BUBBLE3_ICLASS cloud3_iclass;\
__BUBBLE4_ICLASS cloud4_iclass;\
__TOOLTIP_HELP_ICON "DO_HELP_BUTTON";\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define DEFINE_TOOLTIP_WITH_LOGO(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance, logo) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS main_iclass;\
__BUBBLE1_ICLASS cloud1_iclass;\
__BUBBLE2_ICLASS cloud2_iclass;\
__BUBBLE3_ICLASS cloud3_iclass;\
__BUBBLE4_ICLASS cloud4_iclass;\
__TOOLTIP_HELP_ICON logo;\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define DEFINE_TOOLTIP_SIMPLE(name, iclass, tclass, distance) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS iclass;\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define TOOLTIP(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS main_iclass;\
__BUBBLE1_ICLASS cloud1_iclass;\
__BUBBLE2_ICLASS cloud2_iclass;\
__BUBBLE3_ICLASS cloud3_iclass;\
__BUBBLE4_ICLASS cloud4_iclass;\
__TOOLTIP_HELP_ICON "DO_HELP_BUTTON";\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define TOOLTIP_WITH_LOGO(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance, logo) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS main_iclass;\
__BUBBLE1_ICLASS cloud1_iclass;\
__BUBBLE2_ICLASS cloud2_iclass;\
__BUBBLE3_ICLASS cloud3_iclass;\
__BUBBLE4_ICLASS cloud4_iclass;\
__TOOLTIP_HELP_ICON logo;\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define TOOLTIP_SIMPLE(name, iclass, tclass, distance) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS iclass;\
__TCLASS tclass;\
__DISTANCE distance;\
__END
#define TOOLTIP_SIMPLE_WITH_LOGO(name, iclass, tclass, distance, logo) \
__TOOLTIP __BGN;\
__NAME name;\
__ICLASS iclass;\
__TCLASS tclass;\
__TOOLTIP_HELP_ICON logo;\
__DISTANCE distance;\
__END
/*********** Sound creation macros *******************************/
#define BEGIN_SOUND \
__SOUND __BGN
#define END_SOUND \
__END
/*********** Action macros ***************************************/
#define BEGIN_ACLASS(name, type) \
__ACLASS __BGN; \
__NAME name; \
__TYPE type
#define ACLASS_TOOLTIP(tooltip) \
__TOOLTIP_TEXT tooltip
#define ACLASS_ACTION(action, event) \
__EVENT event; \
__ACTION action
#define ACLASS_ACTION_WITH_TOOLTIP(action, event, tooltip) \
__TOOLTIP_ACTION_TEXT tooltip; \
__EVENT event; \
__ACTION action
#define ACLASS_SHOW_MENU(menuname, event) \
__EVENT event; \
__ACTION __A_SHOW_MENU named menuname
#define ACLASS_BUTTON(button, modifier) \
__BUTTON button; \
__MODIFIER_KEY modifier
#define ACLASS_KEY(key, mod) \
__KEY key; \
__MODIFIER_KEY mod
#define ACLASS_ALLOW_ANY_BUTTON \
__ALLOW_ANY_BUTTON __ON
#define ACLASS_ALLOW_ANY_MODIFIER_KEYS \
__ALLOW_ANY_MODIFIER_KEYS __ON
#define ACLASS_ALLOW_ANY_KEY \
__ALLOW_ANY_KEY __ON
#define ACLASS_NEXT_ACTION \
__NEXT_ACTION
#define END_ACLASS \
__END
/*********** Cursor macros ***************************************/
#define CURSOR(name, fg, bg, file) \
__CURSOR __BGN; \
__NAME name; \
__FG_COLOR fg; \
__BG_COLOR bg; \
__XBM_FILE file; \
__END
#define NATIVE_CURSOR(name, fg, bg, id) \
__CURSOR __BGN; \
__NAME name; \
__FG_COLOR fg; \
__BG_COLOR bg; \
__NATIVE_ID id; \
__END
/*********** Slideout and button macros **************************/
#define BEGIN_BUTTON(name, iclass, aclass) \
__BUTTON __BGN; \
__NAME name; \
__ICLASS iclass; \
__ACLASS aclass
#define BUTTON_LABEL(label) \
__LABEL label
#define BUTTON_CURSOR(cursor) \
__CURSOR cursor
#define BUTTON_TEXT(text) \
__TCLASS text
#define BUTTON_IS_INTERNAL \
__IS_INTERNAL __ON
#define BUTTON_SHOW_BY_DEFAULT \
__SHOW_BY_DEFAULT __ON
#define BUTTON_USE_SIZE_OF_IMAGE \
__USE_SIZE_OF_IMAGE __ON
#define BUTTON_MAKE_STICKY \
__MAKE_STICKY __ON
#define BUTTON_KEEP_ON_TOP \
__KEEP_ON_TOP __ON
#define BUTTON_PUT_ON_DESKTOP(num) \
__PUT_ON_DESKTOP num
#define BUTTON_LOCATION(xo, xp, xa, yo, yp, ya) \
__X_ORIGIN xo; \
__X_PERCENTAGE xp; \
__X_ABSOLUTE xa; \
__Y_ORIGIN yo; \
__Y_PERCENTAGE yp; \
__Y_ABSOLUTE ya
#define END_BUTTON \
__END
#define BEGIN_SLIDEOUT(name, direction) \
__SLIDEOUT __BGN;\
__NAME name;\
__SLIDE_DIRECTION direction
#define SLIDEOUT_BUTTON(name) \
__BUTTON name
#define ADD_BUTTON_TO_SLIDEOUT(name) \
__BUTTON name
#define END_SLIDEOUT \
__END
/*********** Desktop BG creation macros ***************************/
#define BEGIN_BACKGROUND(name) \
__DESKTOP __BGN;\
__NAME name
#define END_BACKGROUND \
__END
#define SET_SOLID(color) \
__SOLID_COLOR color
#define ON_DESKTOP(num) \
__USE_ON_DESKTOP num
#define DEFAULT_BACKGROUND \
__USE_ON_DESKTOP __DESKTOP_ALL
#define ADD_BACKGROUND_TILED(file)\
__BACKGROUND_LAYER file 1 1 0 0 0 0
#define ADD_BACKGROUND_SCALED(file)\
__BACKGROUND_LAYER file 0 0 0 0 1024 1024
#define ADD_BACKGROUND_TILED_SCALED_VERTICALLY(file)\
__BACKGROUND_LAYER file 1 0 0 0 0 1024
#define ADD_BACKGROUND_TILED_SCALED_HORIZONTALLY(file)\
__BACKGROUND_LAYER file 1 0 0 0 1024 0
#define ADD_BACKGROUND_CENTERED(file)\
__BACKGROUND_LAYER file 0 1 512 512 0 0
#define ADD_BACKGROUND_TILED_CENTER(file)\
__BACKGROUND_LAYER file 1 1 512 512 0 0
#define ADD_BACKGROUND_SCALED_RETAIN_ASPECT(file)\
__BACKGROUND_LAYER file 0 1 512 512 1024 1024
#define ADD_BACKGROUND_TILED_SCALED_RETAIN_ASPECT(file)\
__BACKGROUND_LAYER file 1 1 512 512 1024 1024
#define ADD_OVERLAY_IMAGE_CENTERED(file) \
__FORGROUND_LAYER file 1 512 512 0 0
#define ADD_OVERLAY_IMAGE_TOP_LEFT(file) \
__FORGROUND_LAYER file 1 0 0 0 0
#define ADD_OVERLAY_IMAGE_TOP_RIGHT(file) \
__FORGROUND_LAYER file 1 1024 0 0 0
#define ADD_OVERLAY_IMAGE_BOTTOM_LEFT(file) \
__FORGROUND_LAYER file 1 0 1024 0 0
#define ADD_OVERLAY_IMAGE_BOTTOM_RIGHT(file) \
__FORGROUND_LAYER file 1 1024 1024 0 0
#define ADD_OVERLAY_IMAGE_BOTTOM_MIDDLE(file) \
__FORGROUND_LAYER file 1 512 1024 0 0
#define ADD_OVERLAY_IMAGE_TOP_MIDDLE(file) \
__FORGROUND_LAYER file 1 512 0 0 0
#define ADD_OVERLAY_IMAGE_LEFT_MIDDLE(file) \
__FORGROUND_LAYER file 1 0 512 0 0
#define ADD_OVERLAY_IMAGE_RIGHT_MIDDLE(file) \
__FORGROUND_LAYER file 1 1024 512 0 0
#define ADD_OVERLAY_IMAGE_SCALED(file) \
__FORGROUND_LAYER file 0 0 0 1024 1024
#define ADD_OVERLAY_IMAGE_ASPECT(file) \
__FORGROUND_LAYER file 1 512 512 1024 1024
#define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_RIGHT(file)\
__BACKGROUND_LAYER file 0 1 1024 512 0 1024
#define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_LEFT(file)\
__BACKGROUND_LAYER file 0 1 0 512 0 1024
#define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_TOP(file)\
__BACKGROUND_LAYER file 0 1 512 0 1024 0
#define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_BOTTOM(file)\
__BACKGROUND_LAYER file 0 1 512 1024 1024 0
/*********** Border creation macros *******************************/
#define BEGIN_BORDER(name, left, right, top, bottom) \
__BORDER __BGN; \
__NAME name; \
__BORDER_SIZE_LEFT left; \
__BORDER_SIZE_RIGHT right; \
__BORDER_SIZE_TOP top; \
__BORDER_SIZE_BOTTOM bottom
#define BORDER_CHANGES_SHAPE \
__CHANGES_SHAPE __ON
#define BORDER_SHADE_DIRECTION(direction) \
__SHADE_DIRECTION direction
#define BORDER_SHADE_UP \
__SHADE_DIRECTION __UP
#define BORDER_GROUP_NAME(name) \
__BORDER_GROUP_NAME name
#define BEGIN_BORDER_PART(iclass, min_width, max_width, min_height, max_height) \
__BORDER_PART __BGN; \
__ICLASS iclass; \
__MIN_WIDTH min_width; \
__MAX_WIDTH max_width; \
__MIN_HEIGHT min_height; \
__MAX_HEIGHT max_height
#define BORDER_PART_KEEP_WHEN_SHADED(value) \
__KEEP_WHEN_SHADED value;
#define BORDER_PART_KEEP_ON_TOP \
__KEEP_ON_TOP __ON
#define BORDER_PART_ACTION(aclass) \
__ACLASS aclass
#define BORDER_PART_CURSOR(cursor) \
__CURSOR cursor
#define BORDER_PART_TITLE(tclass) \
__TCLASS tclass; \
__FLAGS __FLAG_TITLE
#define BORDER_PART_TITLE_AND_ICON(tclass) \
__TCLASS tclass; \
__FLAGS __FLAG_TITLE_AND_ICON
#define BORDER_PART_MINI_ICON \
__FLAGS __FLAG_MINI_ICON
#define BORDER_PART_REGION(o1, x1p, x1, y1p, y1, o2, x2p, x2, y2p, y2) \
__TOPLEFT_ORIGIN o1; \
__TOPLEFT_X_PERCENTAGE x1p; \
__TOPLEFT_X_ABSOLUTE x1; \
__TOPLEFT_Y_PERCENTAGE y1p; \
__TOPLEFT_Y_ABSOLUTE y1; \
__BOTTOMRIGHT_ORIGIN o2; \
__BOTTOMRIGHT_X_PERCENTAGE x2p; \
__BOTTOMRIGHT_X_ABSOLUTE x2; \
__BOTTOMRIGHT_Y_PERCENTAGE y2p; \
__BOTTOMRIGHT_Y_ABSOLUTE y2
#define END_BORDER_PART \
__END
#define END_BORDER \
__END
/*********** Image creation macros ********************************/
#define BEGIN_IMAGE(name) \
__ICLASS __BGN; \
__NAME name
#define IMAGE_NORMAL(file, fill, l, r, t, b) \
__NORMAL file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_HILITED(file, fill, l, r, t, b) \
__HILITED file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_CLICKED(file, fill, l, r, t, b) \
__CLICKED file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_NORMAL_ACTIVE(file, fill, l, r, t, b) \
__NORMAL_ACTIVE file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_HILITED_ACTIVE(file, fill, l, r, t, b) \
__HILITED_ACTIVE file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_CLICKED_ACTIVE(file, fill, l, r, t, b) \
__CLICKED_ACTIVE file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_NORMAL_STICKY(file, fill, l, r, t, b) \
__NORMAL_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_HILITED_STICKY(file, fill, l, r, t, b) \
__HILITED_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_CLICKED_STICKY(file, fill, l, r, t, b) \
__CLICKED_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_NORMAL_ACTIVE_STICKY(file, fill, l, r, t, b) \
__NORMAL_ACTIVE_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_NORMAL_ACTIVE_HILITED(file, fill, l, r, t, b) \
__NORMAL_ACTIVE_HILITED file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_NORMAL_ACTIVE_CLICKED(file, fill, l, r, t, b) \
__NORMAL_ACTIVE_CLICKED file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_HILITED_ACTIVE_STICKY(file, fill, l, r, t, b) \
__HILITED_ACTIVE_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_CLICKED_ACTIVE_STICKY(file, fill, l, r, t, b) \
__CLICKED_ACTIVE_STICKY file; \
__FILLRULE fill; \
__EDGE_SCALING l r t b
#define IMAGE_PADDING(l, r, t, b) \
__PADDING l r t b
#define IMAGE_BEVEL(bevel) \
__BEVEL bevel
#define IMAGE_ROTATE(rotate) \
__ROTATE rotate
#define IMAGE_FLIP(flip) \
__FLIP flip
#define END_IMAGE \
__END
#define BEGIN_TEXT(name) \
__TCLASS __BGN; \
__NAME name
#define TEXT_NORMAL(font, effect, fgcolor, bgcolor) \
__NORMAL font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_CLICKED(font, effect, fgcolor, bgcolor) \
__CLICKED font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_HILITED(font, effect, fgcolor, bgcolor) \
__HILITED font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_NORMAL_ACTIVE(font, effect, fgcolor, bgcolor) \
__NORMAL_ACTIVE font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_CLICKED_ACTIVE(font, effect, fgcolor, bgcolor) \
__CLICKED_ACTIVE font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_HILITED_ACTIVE(font, effect, fgcolor, bgcolor) \
__HILITED_ACTIVE font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_NORMAL_STICKY(font, effect, fgcolor, bgcolor) \
__NORMAL_STICKY font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_CLICKED_STICKY(font, effect, fgcolor, bgcolor) \
__CLICKED_STICKY font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_HILITED_STICKY(font, effect, fgcolor, bgcolor) \
__HILITED_STICKY font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_NORMAL_ACTIVE_STICKY(font, effect, fgcolor, bgcolor) \
__NORMAL_ACTIVE_STICKY font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_NORMAL_ACTIVE_CLICKED(font, effect, fgcolor, bgcolor) \
__NORMAL_ACTIVE_CLICKED font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_NORMAL_ACTIVE_HILITED(font, effect, fgcolor, bgcolor) \
__NORMAL_ACTIVE_HILITED font; \
__DRAWING_EFFECT effect; \
__FORGROUND_COLOR fgcolor; \
__BACKGROUND_COLOR bgcolor
#define TEXT_JUSTIFY_LEFT \
__JUSTIFICATION 0
#define TEXT_JUSTIFY_CENTER \
__JUSTIFICATION 512
#define TEXT_JUSTIFY_RIGHT \
__JUSTIFICATION 1024
#define TEXT_ORIENTATION(direction) \
__ORIENTATION direction
#define END_TEXT \
__END
#define BEGIN_FONTS \
__FONTS __BGN
#define END_FONTS \
__END
#endif /* __E16_DEFINITIONS__ */