home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / xfe / XfeWidgets / XfeTest / TestIcons.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  10.3 KB  |  295 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:        <XfeTest/TestIcons.c>                                    */
  21. /* Description:    Xfe widget icon test funcs.                                */
  22. /* Author:        Ramiro Estrugo <ramiro@netscape.com>                    */
  23. /*                                                                        */
  24. /*----------------------------------------------------------------------*/
  25.  
  26.  
  27. #include <Xfe/XfeTest.h>
  28.  
  29. /*----------------------------------------------------------------------*/
  30. /*                                                                        */
  31. /* TaskBar pixmaps                                                        */
  32. /*                                                                        */
  33. /*----------------------------------------------------------------------*/
  34. #include <taskbar/task_browser.xpm>
  35. #include <taskbar/task_browser_armed.xpm>
  36. #include <taskbar/task_browser_raised.xpm>
  37. #include <taskbar/task_editor.xpm>
  38. #include <taskbar/task_editor_armed.xpm>
  39. #include <taskbar/task_editor_raised.xpm>
  40. #include <taskbar/task_mail.xpm>
  41. #include <taskbar/task_mail_armed.xpm>
  42. #include <taskbar/task_mail_raised.xpm>
  43. #include <taskbar/task_news.xpm>
  44. #include <taskbar/task_news_armed.xpm>
  45. #include <taskbar/task_news_raised.xpm>
  46. #include <taskbar/task_small_browser.xpm>
  47. #include <taskbar/task_small_browser_armed.xpm>
  48. #include <taskbar/task_small_browser_raised.xpm>
  49. #include <taskbar/task_small_editor.xpm>
  50. #include <taskbar/task_small_editor_armed.xpm>
  51. #include <taskbar/task_small_editor_raised.xpm>
  52. #include <taskbar/task_small_handle.xpm>
  53. #include <taskbar/task_small_mail.xpm>
  54. #include <taskbar/task_small_mail_armed.xpm>
  55. #include <taskbar/task_small_mail_raised.xpm>
  56. #include <taskbar/task_small_news.xpm>
  57. #include <taskbar/task_small_news_armed.xpm>
  58. #include <taskbar/task_small_news_raised.xpm>
  59.  
  60. /*----------------------------------------------------------------------*/
  61. /*                                                                        */
  62. /* ToolBar pixmaps                                                        */
  63. /*                                                                        */
  64. /*----------------------------------------------------------------------*/
  65. #include <toolbar/tb_back.xpm>
  66. #include <toolbar/tb_back_armed.xpm>
  67. #include <toolbar/tb_back_raised.xpm>
  68. #include <toolbar/tb_forward.xpm>
  69. #include <toolbar/tb_forward_armed.xpm>
  70. #include <toolbar/tb_forward_raised.xpm>
  71. #include <toolbar/tb_home.xpm>
  72. #include <toolbar/tb_home_armed.xpm>
  73. #include <toolbar/tb_home_raised.xpm>
  74. #include <toolbar/tb_loadimages.xpm>
  75. #include <toolbar/tb_loadimages_armed.xpm>
  76. #include <toolbar/tb_loadimages_raised.xpm>
  77. #include <toolbar/tb_mixsecurity.xpm>
  78. #include <toolbar/tb_mixsecurity_armed.xpm>
  79. #include <toolbar/tb_mixsecurity_raised.xpm>
  80. #include <toolbar/tb_places.xpm>
  81. #include <toolbar/tb_places_armed.xpm>
  82. #include <toolbar/tb_places_raised.xpm>
  83. #include <toolbar/tb_print.xpm>
  84. #include <toolbar/tb_print_armed.xpm>
  85. #include <toolbar/tb_print_raised.xpm>
  86. #include <toolbar/tb_reload.xpm>
  87. #include <toolbar/tb_reload_armed.xpm>
  88. #include <toolbar/tb_reload_raised.xpm>
  89. #include <toolbar/tb_search.xpm>
  90. #include <toolbar/tb_search_armed.xpm>
  91. #include <toolbar/tb_search_raised.xpm>
  92. #include <toolbar/tb_secure.xpm>
  93. #include <toolbar/tb_secure_armed.xpm>
  94. #include <toolbar/tb_secure_raised.xpm>
  95. #include <toolbar/tb_stop.xpm>
  96. #include <toolbar/tb_stop_armed.xpm>
  97. #include <toolbar/tb_stop_raised.xpm>
  98. #include <toolbar/tb_unsecure.xpm>
  99. #include <toolbar/tb_unsecure_armed.xpm>
  100. #include <toolbar/tb_unsecure_raised.xpm>
  101.  
  102. /*----------------------------------------------------------------------*/
  103. /*                                                                        */
  104. /* ToolBox pixmaps                                                        */
  105. /*                                                                        */
  106. /*----------------------------------------------------------------------*/
  107. #include <toolbox/dtb_bottom.xpm>
  108. #include <toolbox/dtb_bottom_raised.xpm>
  109. #include <toolbox/dtb_horizontal.xpm>
  110. #include <toolbox/dtb_horizontal_raised.xpm>
  111. #include <toolbox/dtb_left.xpm>
  112. #include <toolbox/dtb_left_raised.xpm>
  113. #include <toolbox/dtb_right.xpm>
  114. #include <toolbox/dtb_right_raised.xpm>
  115. #include <toolbox/dtb_top.xpm>
  116. #include <toolbox/dtb_top_raised.xpm>
  117. #include <toolbox/dtb_vertical.xpm>
  118. #include <toolbox/dtb_vertical_raised.xpm>
  119.  
  120. /*----------------------------------------------------------------------*/
  121. /*                                                                        */
  122. /* Proxy pixmaps                                                        */
  123. /*                                                                        */
  124. /*----------------------------------------------------------------------*/
  125. #include <proxy/proxy.xpm>
  126. #include <proxy/proxy_raised.xpm>
  127.  
  128. #define GR_ITEM(n,d) \
  129. { n , d , 0 , 0 },
  130.  
  131. static XfeGraphicRec _gr_data[] =
  132. {
  133.     GR_ITEM("task_browser",                    task_browser)
  134.     GR_ITEM("task_browser_armed",            task_browser_armed)
  135.     GR_ITEM("task_browser_raised",            task_browser_raised)
  136.     GR_ITEM("task_editor",                    task_editor)
  137.     GR_ITEM("task_editor_armed",            task_editor_armed)
  138.     GR_ITEM("task_editor_raised",            task_editor_raised)
  139.     GR_ITEM("task_mail",                    task_mail)
  140.     GR_ITEM("task_mail_armed",                task_mail_armed)
  141.     GR_ITEM("task_mail_raised",                task_mail_raised)
  142.     GR_ITEM("task_news",                    task_news)
  143.     GR_ITEM("task_news_armed",                task_news_armed)
  144.     GR_ITEM("task_news_raised",                task_news_raised)
  145.     GR_ITEM("task_small_browser",            task_small_browser)
  146.     GR_ITEM("task_small_browser_armed",        task_small_browser_armed)
  147.     GR_ITEM("task_small_browser_raised",    task_small_browser_raised)
  148.     GR_ITEM("task_small_editor",            task_small_editor)
  149.     GR_ITEM("task_small_editor_armed",        task_small_editor_armed)
  150.     GR_ITEM("task_small_editor_raised",        task_small_editor_raised)
  151.     GR_ITEM("task_small_handle",            task_small_handle)
  152.     GR_ITEM("task_small_mail",                task_small_mail)
  153.     GR_ITEM("task_small_mail_armed",        task_small_mail_armed)
  154.     GR_ITEM("task_small_mail_raised",        task_small_mail_raised)
  155.     GR_ITEM("task_small_news",                task_small_news)
  156.     GR_ITEM("task_small_news_armed",        task_small_news_armed)
  157.     GR_ITEM("task_small_news_raised",        task_small_news_raised)
  158.  
  159.     GR_ITEM("tb_back",                        tb_back)
  160.     GR_ITEM("tb_back_armed",                tb_back_armed)
  161.     GR_ITEM("tb_back_raised",                tb_back_raised)
  162.     GR_ITEM("tb_forward",                    tb_forward)
  163.     GR_ITEM("tb_forward_armed",                tb_forward_armed)
  164.     GR_ITEM("tb_forward_raised",            tb_forward_raised)
  165.     GR_ITEM("tb_home",                        tb_home)
  166.     GR_ITEM("tb_home_armed",                tb_home_armed)
  167.     GR_ITEM("tb_home_raised",                tb_home_raised)
  168.     GR_ITEM("tb_loadimages",                tb_loadimages)
  169.     GR_ITEM("tb_loadimages_armed",            tb_loadimages_armed)
  170.     GR_ITEM("tb_loadimages_raised",            tb_loadimages_raised)
  171.     GR_ITEM("tb_mixsecurity",                tb_mixsecurity)
  172.     GR_ITEM("tb_mixsecurity_armed",            tb_mixsecurity_armed)
  173.     GR_ITEM("tb_mixsecurity_raised",        tb_mixsecurity_raised)
  174.     GR_ITEM("tb_places",                    tb_places)
  175.     GR_ITEM("tb_places_armed",                tb_places_armed)
  176.     GR_ITEM("tb_places_raised",                tb_places_raised)
  177.     GR_ITEM("tb_print",                        tb_print)
  178.     GR_ITEM("tb_print_armed",                tb_print_armed)
  179.     GR_ITEM("tb_print_raised",                tb_print_raised)
  180.     GR_ITEM("tb_reload",                    tb_reload)
  181.     GR_ITEM("tb_reload_armed",                tb_reload_armed)
  182.     GR_ITEM("tb_reload_raised",                tb_reload_raised)
  183.     GR_ITEM("tb_search",                    tb_search)
  184.     GR_ITEM("tb_search_armed",                tb_search_armed)
  185.     GR_ITEM("tb_search_raised",                tb_search_raised)
  186.     GR_ITEM("tb_secure",                    tb_secure)
  187.     GR_ITEM("tb_secure_armed",                tb_secure_armed)
  188.     GR_ITEM("tb_secure_raised",                tb_secure_raised)
  189.     GR_ITEM("tb_stop",                        tb_stop)
  190.     GR_ITEM("tb_stop_armed",                tb_stop_armed)
  191.     GR_ITEM("tb_stop_raised",                tb_stop_raised)
  192.     GR_ITEM("tb_unsecure",                    tb_unsecure)
  193.     GR_ITEM("tb_unsecure_armed",            tb_unsecure_armed)
  194.     GR_ITEM("tb_unsecure_raised",            tb_unsecure_raised)
  195.  
  196.     GR_ITEM("dtb_bottom",                    dtb_bottom)
  197.     GR_ITEM("dtb_bottom_raised",            dtb_bottom_raised)
  198.     GR_ITEM("dtb_horizontal",                dtb_horizontal)
  199.     GR_ITEM("dtb_horizontal_raised",        dtb_horizontal_raised)
  200.     GR_ITEM("dtb_left",                        dtb_left)
  201.     GR_ITEM("dtb_left_raised",                dtb_left_raised)
  202.     GR_ITEM("dtb_right",                    dtb_right)
  203.     GR_ITEM("dtb_right_raised",                dtb_right_raised)
  204.     GR_ITEM("dtb_top",                        dtb_top)
  205.     GR_ITEM("dtb_top_raised",                dtb_top_raised)
  206.     GR_ITEM("dtb_vertical",                    dtb_vertical)
  207.     GR_ITEM("dtb_vertical_raised",            dtb_vertical_raised)
  208.  
  209.     GR_ITEM("proxy",                        proxy)
  210.     GR_ITEM("proxy_raised",                    proxy_raised)
  211.  
  212.     { NULL },
  213. };
  214.  
  215. /*----------------------------------------------------------------------*/
  216. static XfeGraphic
  217. GraphicFind(char * name)
  218. {
  219.     XfeGraphic    g = _gr_data;
  220.     Cardinal    n = 0;
  221.  
  222.     while (g && (g->name != NULL))
  223.     {
  224.         if (strcmp(g->name,name) == 0)
  225.         {
  226.             return g;
  227.         }
  228.  
  229.         n++;
  230.         g++;
  231.     }
  232.  
  233.     return NULL;
  234. }
  235. /*----------------------------------------------------------------------*/
  236. static void
  237. GraphicAllocate(Widget w,XfeGraphic g)
  238. {
  239.     assert( g != NULL );
  240.     assert( g->data != NULL );
  241.     assert( XfeIsAlive(w) );
  242.  
  243.     assert( !XfePixmapGood(g->pixmap) );
  244.     assert( !XfePixmapGood(g->mask) );
  245.  
  246.     XfeAllocatePixmapFromData(g->data,
  247.                               XtDisplay(w),
  248.                               DefaultRootWindow(XtDisplay(w)),
  249.                               XfeColormap(w),
  250.                               40000,
  251.                               XfeDepth(w),
  252.                               XfeBackground(w),
  253.                               &g->pixmap,
  254.                               &g->mask);
  255.     
  256.     assert( XfePixmapGood(g->pixmap) );
  257. }
  258. /*----------------------------------------------------------------------*/
  259. /* extern */ XfeGraphic
  260. XfeGetGraphic(Widget w,char * name)
  261. {
  262.     XfeGraphic g = GraphicFind(name);
  263.  
  264.     if (g)
  265.     {
  266.         if (!XfePixmapGood(g->pixmap))
  267.         {
  268.             GraphicAllocate(w,g);
  269.         }
  270.     }
  271.     else
  272.     {
  273.         fprintf(stderr,"Graphic '%s' not found\n",name);
  274.     }
  275.  
  276.     return g;
  277. }
  278. /*----------------------------------------------------------------------*/
  279. /* extern */ Pixmap
  280. XfeGetPixmap(Widget w,char * name)
  281. {
  282.     XfeGraphic g = XfeGetGraphic(w,name);
  283.  
  284.     return g ? g->pixmap : XmUNSPECIFIED_PIXMAP;
  285. }
  286. /*----------------------------------------------------------------------*/
  287. /* extern */ Pixmap
  288. XfeGetMask(Widget w,char * name)
  289. {
  290.     XfeGraphic g = XfeGetGraphic(w,name);
  291.     
  292.     return g ? g->mask : XmUNSPECIFIED_PIXMAP;
  293. }
  294. /*----------------------------------------------------------------------*/
  295.