home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / xfe / XfeWidgets / Xfe / Xfe.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  16.3 KB  |  425 lines

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18. /*-----------------------------------------*/
  19. /*                                                                        */
  20. /* Name:        <Xfe/Xfe.h>                                                */
  21. /* Description:    Xfe widgets main header file.                            */
  22. /* Author:        Ramiro Estrugo <ramiro@netscape.com>                    */
  23. /*                                                                        */
  24. /*----------------------------------------------------------------------*/
  25.  
  26.  
  27. #ifndef _XfeXfe_h_                                /* start Xfe.h            */
  28. #define _XfeXfe_h_
  29.  
  30. #include <Xm/Xm.h>                                /* Motif public defs    */
  31. #include <Xfe/StringDefs.h>                        /* Xfe public str defs    */
  32. #include <Xfe/Defaults.h>                        /* Xfe default res vals    */
  33. #include <Xfe/ChildrenUtil.h>                    /* Children utils        */
  34. #include <Xfe/Converters.h>                        /* Converters            */
  35. #include <Xfe/DialogUtil.h>                        /* Dialog utils            */
  36. #include <Xfe/Draw.h>                            /* Drawing utils        */
  37. #include <Xfe/Find.h>                            /* Finding utils        */
  38. #include <Xfe/Geometry.h>                        /* Geometry utils        */
  39. #include <Xfe/ListUtil.h>                        /* List utils            */
  40. #include <Xfe/MenuUtil.h>                        /* Menu/RowCol utils    */
  41. #include <Xfe/RepType.h>                        /* Representation types    */
  42. #include <Xfe/Resources.h>                        /* Resource utils        */
  43. #include <Xfe/ShellUtil.h>                        /* Shell utils            */
  44. #include <Xfe/StringUtil.h>                        /* XmString  utils        */
  45. #include <Xfe/WmUtil.h>                            /* Window manager utils    */
  46.  
  47. #ifdef DEBUG
  48. #include <Xfe/Debug.h>                            /* Debugging stuff        */
  49. #endif
  50.  
  51. #include <assert.h>                                /* Assert                */
  52.  
  53. #ifdef __cplusplus                                /* start C++            */
  54. extern "C" {
  55. #endif
  56.  
  57. /*----------------------------------------------------------------------*/
  58. /*                                                                        */
  59. /* Event loop proc                                                        */
  60. /*                                                                        */
  61. /*----------------------------------------------------------------------*/
  62. typedef void    (*XfeEventLoopProc)        (void);
  63.  
  64. /*----------------------------------------------------------------------*/
  65. /*                                                                        */
  66. /* Callback Reasons                                                        */
  67. /*                                                                        */
  68. /*----------------------------------------------------------------------*/
  69. enum
  70. {
  71.     XmCR_ACTION  = (XmCR_OBSCURED_TRAVERSAL + 999),/* Generic action    */
  72.     XmCR_ANIMATION,                                /* Logo animation        */
  73.     XmCR_TITLE_CHANGED,                            /* Title changed        */
  74.     XmCR_TOOL_BAR_SELECTION_CHANGED,            /* TB selection changed    */
  75.     XmCR_TOOL_BAR_VALUE_CHANGED,                /* TB value changed        */
  76.     XmCR_BEFORE_REALIZE,                        /* Before realize        */
  77.     XmCR_BEFORE_RESIZE,                            /* Before resize        */
  78.     XmCR_BUTTON_3_DOWN,                            /* Button 3 down        */
  79.     XmCR_BUTTON_3_UP,                            /* Button 3 up            */
  80.     XmCR_CHANGE_MANAGED,                        /* Change managed        */
  81.     XmCR_CLOSE,                                    /* Task bar close        */
  82.     XmCR_DELETE_WINDOW,                            /* Delete window        */
  83.     XmCR_DOCK,                                    /* Task bar dock        */
  84.     XmCR_ENTER,                                    /* Enter                */
  85.     XmCR_FIRST_MAP,                                /* First map            */
  86.     XmCR_FLOATING_MAP,                            /* Floating map            */
  87.     XmCR_FLOATING_UNMAP,                        /* Floating unmap        */
  88.     XmCR_GRAB,                                    /* Grab                    */
  89.     XmCR_LEAVE,                                    /* Leave                */
  90.     XmCR_LOWER,                                    /* Lower                */
  91.     XmCR_MOVE,                                    /* Move                    */
  92.     XmCR_POPDOWN,                                /* Popdown                */
  93.     XmCR_POPULATE,                                /* Populate                */
  94.     XmCR_POPUP,                                    /* Popup                */
  95.     XmCR_RAISE,                                    /* Raise                */
  96.     XmCR_REALIZE,                                /* Realize                */
  97.     XmCR_SAVE_YOURSELF,                            /* Save yourself        */
  98.     XmCR_SELECTION_CHANGED,                        /* Selection changed    */
  99.     XmCR_SUBMENU_MAP,                            /* Submenu map            */
  100.     XmCR_SUBMENU_TEAR,                            /* Submenu torn/untorn    */
  101.     XmCR_SUBMENU_UNMAP,                            /* Submenu unmap        */
  102.     XmCR_TASK_BAR,                                /* Task bar active        */
  103.     XmCR_TOGGLE_BOX,                            /* Toggle box            */
  104.     XmCR_TOGGLE_SELECTION,                        /* Toggle selection        */
  105.     XmCR_TOOL_BOX_ALLOW,                        /* Tool box allow        */
  106.     XmCR_TOOL_BOX_CLOSE,                        /* Tool box close        */
  107.     XmCR_TOOL_BOX_DRAG_END,                        /* Tool box drag end    */
  108.     XmCR_TOOL_BOX_DRAG_MOTION,                    /* Tool box drag motion    */
  109.     XmCR_TOOL_BOX_DRAG_START,                    /* Tool box drag start    */
  110.     XmCR_TOOL_BOX_NEW_ITEM,                        /* Tool box new item    */
  111.     XmCR_TOOL_BOX_OPEN,                            /* Tool box open        */
  112.     XmCR_TOOL_BOX_SNAP,                            /* Tool box snap        */
  113.     XmCR_TOOL_BOX_SWAP,                            /* Tool box swap        */
  114.     XmCR_UNDOCK,                                /* Task bar undock        */ 
  115.     XmCR_UNGRAB,                                /* Ungrab                */
  116.     XmCR_XFE_LAST_REASON                        /* Last reason marker    */
  117. };
  118.  
  119. /*----------------------------------------------------------------------*/
  120. /*                                                                        */
  121. /* Pixmap Table                                                            */
  122. /*                                                                        */
  123. /*----------------------------------------------------------------------*/
  124. typedef Pixmap * XfePixmapTable;
  125.  
  126. /*----------------------------------------------------------------------*/
  127. /*                                                                        */
  128. /* Pixmap utilities                                                        */
  129. /*                                                                        */
  130. /*----------------------------------------------------------------------*/
  131. extern Boolean
  132. XfePixmapExtent                (Display *        dpy,
  133.                              Pixmap            pixmap,
  134.                              Dimension *    width,
  135.                              Dimension *    height,
  136.                              Cardinal *        depth);
  137. /*----------------------------------------------------------------------*/
  138. extern Boolean
  139. XfePixmapGood                (Pixmap pixmap);
  140. /*----------------------------------------------------------------------*/
  141. extern Pixmap
  142. XfeInsensitiveTile            (Screen *    screen,
  143.                              int        depth,
  144.                              Pixel        fg,
  145.                              Pixel        bg);
  146. /*----------------------------------------------------------------------*/
  147. extern Pixmap
  148. XfeInsensitiveStipple        (Screen *    screen,
  149.                              int        depth,
  150.                              Pixel        fg,
  151.                              Pixel        bg);
  152. /*----------------------------------------------------------------------*/
  153. extern void
  154. XfePixmapClear                (Display *    dpy,
  155.                              Pixmap        pixmap,
  156.                              GC            gc,
  157.                              Dimension    width,
  158.                              Dimension    height);
  159. /*----------------------------------------------------------------------*/
  160. extern Pixmap
  161. XfePixmapCheck                (Widget            w,
  162.                              Pixmap            pixmap,
  163.                              Dimension *    width_out,
  164.                              Dimension *    height_out);
  165. /*----------------------------------------------------------------------*/
  166.  
  167. /*----------------------------------------------------------------------*/
  168. /*                                                                        */
  169. /* Gc utilities                                                            */
  170. /*                                                                        */
  171. /*----------------------------------------------------------------------*/
  172. extern GC
  173. XfeAllocateStringGc                (Widget        w,
  174.                                  XmFontList    font_list,
  175.                                  Pixel        fg,
  176.                                  Pixel        bg,
  177.                                  Boolean    sensitive);
  178. /*----------------------------------------------------------------------*/
  179. extern GC
  180. XfeAllocateColorGc                (Widget        w,
  181.                                  Pixel        fg,
  182.                                  Pixel        bg,
  183.                                  Boolean    sensitive);
  184. /*----------------------------------------------------------------------*/
  185. extern GC
  186. XfeAllocateTileGc                (Widget        w,
  187.                                  Pixmap        tile_pixmap);
  188. /*----------------------------------------------------------------------*/
  189. extern GC
  190. XfeAllocateTransparentGc        (Widget        w);
  191. /*----------------------------------------------------------------------*/
  192. extern GC
  193. XfeAllocateSelectionGc            (Widget        w,
  194.                                  Dimension    thickness,
  195.                                  Pixel        fg,
  196.                                  Pixel        bg);
  197. /*----------------------------------------------------------------------*/
  198. extern GC
  199. XfeAllocateCopyGc                (Widget        w);
  200. /*----------------------------------------------------------------------*/
  201.  
  202. /*----------------------------------------------------------------------*/
  203. /*                                                                        */
  204. /* Clipping functions                                                    */
  205. /*                                                                        */
  206. /*----------------------------------------------------------------------*/
  207. extern void
  208. XfeClipSeg                        (XSegment *        seg_src,
  209.                                  XSegment *        seg_dst,
  210.                                  XRectangle *    clip_rect);
  211. /*----------------------------------------------------------------------*/
  212. extern void
  213. XfeClipRect                        (XRectangle *    rect_src,
  214.                                  XRectangle *    rect_dst,
  215.                                  XRectangle *    clip_rect);
  216. /*----------------------------------------------------------------------*/
  217. extern Boolean
  218. XfeRectInRect                    (XRectangle *    rect,
  219.                                  XRectangle *    clip_rect);
  220. /*----------------------------------------------------------------------*/
  221. extern Boolean
  222. XfePointInRect                    (XRectangle *    rect,
  223.                                  int            x,
  224.                                  int            y);
  225. /*----------------------------------------------------------------------*/
  226. extern void 
  227. XfeRectSet                        (XRectangle *    rect,
  228.                                  Position        x,
  229.                                  Position        y,
  230.                                  Dimension        width,
  231.                                  Dimension        height);
  232. /*----------------------------------------------------------------------*/
  233. extern void 
  234. XfeRectCopy                        (XRectangle *    dst,
  235.                                  XRectangle *    src);
  236. /*----------------------------------------------------------------------*/
  237. extern void 
  238. XfePointSet                        (XPoint *        point,
  239.                                  Position        x,
  240.                                  Position        y);
  241. /*----------------------------------------------------------------------*/
  242.     
  243. /*----------------------------------------------------------------------*/
  244. /*                                                                        */
  245. /* Simple Widget access functions                                        */
  246. /*                                                                        */
  247. /*----------------------------------------------------------------------*/
  248. extern Widget        XfeWindowedWidget        (Widget w);
  249. extern Boolean        XfeIsViewable            (Widget w);
  250. extern Boolean        XfeIsAlive                (Widget w);
  251. extern XtPointer    XfeUserData                (Widget w);
  252. extern XtPointer    XfeInstancePointer        (Widget w);
  253. extern Colormap        XfeColormap                (Widget w);
  254. extern Cardinal        XfeDepth                (Widget w);
  255. extern Pixel        XfeBackground            (Widget w);
  256. extern Pixel        XfeForeground            (Widget w);
  257. extern Visual *        XfeVisual                (Widget w);
  258. extern String        XfeClassNameForWidget    (Widget w);
  259.  
  260. /*----------------------------------------------------------------------*/
  261. /*                                                                        */
  262. /* Simple WidgetClass access functions                                    */
  263. /*                                                                        */
  264. /*----------------------------------------------------------------------*/
  265. extern String        XfeClassName            (WidgetClass wc);
  266. extern WidgetClass    XfeSuperClass            (WidgetClass wc);
  267.  
  268. /*----------------------------------------------------------------------*/
  269. /*                                                                        */
  270. /* XmFontList                                                            */
  271. /*                                                                        */
  272. /*----------------------------------------------------------------------*/
  273. extern XmFontList
  274. XfeXmFontListCopy            (Widget            w,
  275.                              XmFontList        font_list,
  276.                              unsigned char    font_type);
  277. /*----------------------------------------------------------------------*/
  278. /* extern */ XmFontList
  279. XfeXmFontListAccess            (Widget            w);
  280. /*----------------------------------------------------------------------*/
  281.  
  282.  
  283. /*----------------------------------------------------------------------*/
  284. /*                                                                        */
  285. /* XmString                                                                */
  286. /*                                                                        */
  287. /*----------------------------------------------------------------------*/
  288. extern XmString
  289. XfeXmStringCopy                (Widget            w,
  290.                              XmString        xm_string,
  291.                              String            fallback);
  292. /*----------------------------------------------------------------------*/
  293. extern String
  294. XfeXmStringGetPSZ            (XmString        xm_string,
  295.                              char *            tag);
  296. /*----------------------------------------------------------------------*/
  297. extern void
  298. XfeSetXmStringPSZ            (Widget            w,
  299.                              String            name,
  300.                              char *            tag,
  301.                              char *            value);
  302. /*----------------------------------------------------------------------*/
  303.  
  304.  
  305. /*----------------------------------------------------------------------*/
  306. /*                                                                        */
  307. /* Colors                                                                */
  308. /*                                                                        */
  309. /*----------------------------------------------------------------------*/
  310. extern Pixel
  311. XfeSelectPixel                (Widget            w,
  312.                              Pixel            base);
  313. /*----------------------------------------------------------------------*/
  314.  
  315. /*----------------------------------------------------------------------*/
  316. /*                                                                        */
  317. /* Cursor                                                                */
  318. /*                                                                        */
  319. /*----------------------------------------------------------------------*/
  320. extern void
  321. XfeCursorDefine                (Widget            w,
  322.                              Cursor            cursor);
  323. /*----------------------------------------------------------------------*/
  324. extern void
  325. XfeCursorUndefine            (Widget            w);
  326. /*----------------------------------------------------------------------*/
  327. extern Boolean
  328. XfeCursorGood                (Cursor            cursor);
  329. /*----------------------------------------------------------------------*/
  330. extern Cursor                
  331. XfeCursorGetDragHand        (Widget            w);
  332. /*----------------------------------------------------------------------*/
  333.  
  334. /*----------------------------------------------------------------------*/
  335. /*                                                                        */
  336. /* Simple Math                                                            */
  337. /*                                                                        */
  338. /*----------------------------------------------------------------------*/
  339. #define XfeAbs(a)        (( (a) < 0 ) ? -(a) : (a) )
  340. #define XfeMax(a,b)        (( (a) > (b) ) ? (a) : (b) )
  341. #define XfeMin(a,b)        (( (a) < (b) ) ? (a) : (b) )
  342. #define XfeSgn(a)        (( (a) < 0 ) ? -1 : 1 )
  343. #define XfeOdd(a)        ((((a) % 2) != 0) ? True : False)
  344. #define XfeEven(a)        ((((a) % 2) == 0) ? True : False)
  345. /*----------------------------------------------------------------------*/
  346.  
  347. /*----------------------------------------------------------------------*/
  348. /*                                                                        */
  349. /* Translation / Action functions                                        */
  350. /*                                                                        */
  351. /*----------------------------------------------------------------------*/
  352. extern void
  353. XfeOverrideTranslations            (Widget            w,
  354.                                  String            table);
  355. /*----------------------------------------------------------------------*/
  356. extern void
  357. XfeAddActions                    (Widget            w,
  358.                                  XtActionList    actions,
  359.                                  Cardinal        num_actions);
  360. /*----------------------------------------------------------------------*/
  361.  
  362. /*----------------------------------------------------------------------*/
  363. /*                                                                        */
  364. /* Management                                                            */
  365. /*                                                                        */
  366. /*----------------------------------------------------------------------*/
  367. extern void
  368. XfeSetManagedState                (Widget            w,
  369.                                  Boolean        state);
  370. /*----------------------------------------------------------------------*/
  371. extern void
  372. XfeToggleManagedState            (Widget            w);
  373. /*----------------------------------------------------------------------*/
  374.  
  375.  
  376. /*----------------------------------------------------------------------*/
  377. /*                                                                        */
  378. /* Explicit invocation of core methods.                                  */
  379. /*                                                                        */
  380. /*----------------------------------------------------------------------*/
  381. extern void
  382. XfeExpose                        (Widget            w,
  383.                                  XEvent *        event,
  384.                                  Region            region);
  385. /*----------------------------------------------------------------------*/
  386. extern void
  387. XfeResize                        (Widget            w);
  388. /*----------------------------------------------------------------------*/
  389.  
  390. /*----------------------------------------------------------------------*/
  391. /*                                                                        */
  392. /* Sleep routine.                                                        */
  393. /*                                                                        */
  394. /*----------------------------------------------------------------------*/
  395. extern void                        
  396. XfeSleep                        (Widget                w,
  397.                                  XfeEventLoopProc    proc,
  398.                                  int                ms);
  399. /*----------------------------------------------------------------------*/
  400.  
  401. /*----------------------------------------------------------------------*/
  402. /*                                                                        */
  403. /* XEvent functions                                                        */
  404. /*                                                                        */
  405. /*----------------------------------------------------------------------*/
  406. extern Boolean
  407. XfeEventGetXY                    (XEvent *            event,
  408.                                  int *                x_out,
  409.                                  int *                y_out);
  410. /*----------------------------------------------------------------------*/
  411. extern Boolean
  412. XfeEventGetRootXY                (XEvent *            event,
  413.                                  int *                x_out,
  414.                                  int *                y_out);
  415. /*----------------------------------------------------------------------*/
  416. extern Modifiers
  417. XfeEventGetModifiers            (XEvent *            event);
  418. /*----------------------------------------------------------------------*/
  419.  
  420. #ifdef __cplusplus                                /* end C++                */
  421. }
  422. #endif
  423.  
  424. #endif                                            /* end Xfe.h            */
  425.