home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / xfe / src / IconGroup.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  7.7 KB  |  253 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.    IconGroup.h -- used to ease Toolbar icon stuff.
  20.    Created: Chris Toshok <toshok@netscape.com>, 2-Nov-96
  21.  */
  22.  
  23.  
  24.  
  25. #ifndef _xfe_icongroup_h
  26. #define _xfe_icongroup_h
  27.  
  28. #include "mozilla.h"
  29. #include "xfe.h"
  30. #include "icons.h"
  31. #include "icondata.h"
  32.  
  33. typedef struct IconGroup
  34. {
  35.   const char *name;
  36.  
  37.   struct fe_icon_data *pixmap_data;
  38.   struct fe_icon_data *pixmap_i_data;
  39.   struct fe_icon_data *pixmap_mo_data;
  40.   struct fe_icon_data *pixmap_md_data;
  41.  
  42.   fe_icon pixmap_icon;
  43.   fe_icon pixmap_i_icon;
  44.   fe_icon pixmap_mo_icon;
  45.   fe_icon pixmap_md_icon;
  46.  
  47. } IconGroup;
  48.  
  49. #ifndef WANT_EXTERNS
  50. #define WANT_EXTERNS
  51. #endif
  52.  
  53. #ifdef WANT_GROUPS
  54. #define ICONGROUP_VERBOSE(name, pixmap, pixmap_i, pixmap_mo, pixmap_md) \
  55.         struct IconGroup name##_group = {"###", \
  56.                      pixmap, pixmap_i, \
  57.                      pixmap_mo, pixmap_md, \
  58.                      { 0 }, { 0 }, { 0 }, { 0 } };
  59. #define ICONGROUP(name) struct IconGroup name##_group = \
  60. { "####", &name, &name##_i, &name##_mo, &name##_md, \
  61.   { 0 }, { 0 }, { 0 }, { 0 } };
  62. #define ICONGROUP_NOMO(name) struct IconGroup name##_group = \
  63. { "####", &name, &name##_i, 0, 0, { 0 }, { 0 }, { 0 }, { 0 } };
  64. #else
  65. #ifdef WANT_EXTERNS
  66. #define ICONGROUP(name) extern struct IconGroup name##_group;
  67. #define ICONGROUP_VERBOSE(name, pixmap, pixmap_i, pixmap_mo, pixmap_md) extern struct IconGroup name##_group;
  68. #define ICONGROUP_NOMO(name) extern struct IconGroup name##_group;
  69. #endif
  70. #endif
  71.  
  72. /* Browser Toolbar stuff. */
  73. ICONGROUP(TB_Back)
  74. ICONGROUP(TB_Forward)
  75. ICONGROUP(TB_Home)
  76. ICONGROUP(TB_Edit)
  77. ICONGROUP(TB_Search)
  78. ICONGROUP(TB_Places)
  79. ICONGROUP(TB_LoadImages)
  80. ICONGROUP(TB_Print)
  81. ICONGROUP(TB_Reload)
  82. ICONGROUP(TB_Stop)
  83. ICONGROUP(TB_Unsecure)
  84. ICONGROUP(TB_Secure)
  85. ICONGROUP(TB_MixSecurity)
  86.  
  87. /* Dashboard icons. */
  88. ICONGROUP_VERBOSE(Dash_Secure, &Dash_Secure, NULL, NULL, NULL)
  89. ICONGROUP_VERBOSE(Dash_Unsecure, &Dash_Unsecure, NULL, NULL, NULL)
  90. ICONGROUP_VERBOSE(Dash_Signed, &Dash_Signed, NULL, NULL, NULL)
  91. ICONGROUP_VERBOSE(Dash_Unsigned, &Dash_Unsigned, NULL, NULL, NULL)
  92.  
  93. /* Dynamic ToolBox tab icons. */
  94. ICONGROUP_VERBOSE(DTB_bottom,    &DTB_bottom,    NULL, &DTB_bottom_mo,    NULL)
  95. ICONGROUP_VERBOSE(DTB_left,        &DTB_left,        NULL, &DTB_left_mo,        NULL)
  96. ICONGROUP_VERBOSE(DTB_right,    &DTB_right,        NULL, &DTB_right_mo,    NULL)
  97. ICONGROUP_VERBOSE(DTB_top,        &DTB_top,        NULL, &DTB_top_mo,        NULL)
  98. ICONGROUP_VERBOSE(DTB_vertical,    &DTB_vertical,    NULL, &DTB_vertical_mo, NULL)
  99. ICONGROUP_VERBOSE(DTB_horizontal,&DTB_horizontal,NULL,&DTB_horizontal_mo,NULL)
  100.  
  101. /* Bookmarks, URL bar */
  102. ICONGROUP_VERBOSE(BM_Bookmark, &BM_Bookmark, NULL, NULL, NULL)
  103. ICONGROUP_VERBOSE(BM_MailBookmark, &BM_MailBookmark, NULL, NULL, NULL)
  104. ICONGROUP_VERBOSE(BM_NewsBookmark, &BM_NewsBookmark, NULL, NULL, NULL)
  105. ICONGROUP_VERBOSE(BM_Change, &BM_Change, NULL, NULL, NULL)
  106. ICONGROUP_VERBOSE(BM_PersonalFolder, &BM_PersonalFolder, NULL, NULL, NULL)
  107. ICONGROUP_VERBOSE(BM_PersonalFolderO, &BM_PersonalFolderO, NULL, NULL, NULL)
  108. ICONGROUP_VERBOSE(BM_NewPersonalFolder, &BM_NewPersonalFolder, NULL, NULL, NULL)
  109. ICONGROUP_VERBOSE(BM_NewPersonalFolderO, &BM_NewPersonalFolderO, NULL, NULL, NULL)
  110. ICONGROUP_VERBOSE(BM_NewPersonalMenu, &BM_NewPersonalMenu, NULL, NULL, NULL)
  111. ICONGROUP_VERBOSE(BM_NewPersonalMenuO, &BM_NewPersonalMenuO, NULL, NULL, NULL)
  112. ICONGROUP_VERBOSE(BM_Folder, &BM_Folder, NULL, NULL, NULL)
  113. ICONGROUP_VERBOSE(BM_FolderO, &BM_FolderO, NULL, NULL, NULL)
  114. ICONGROUP_VERBOSE(BM_MenuFolder, &BM_MenuFolder, NULL, NULL, NULL)
  115. ICONGROUP_VERBOSE(BM_MenuFolderO, &BM_MenuFolderO, NULL, NULL, NULL)
  116. ICONGROUP_VERBOSE(BM_NewAndMenuFolder, &BM_NewAndMenuFolder, NULL, NULL, NULL)
  117. ICONGROUP_VERBOSE(BM_NewAndMenuFolderO, &BM_NewAndMenuFolderO, NULL, NULL, NULL)
  118. ICONGROUP_VERBOSE(BM_NewFolder, &BM_NewFolder, NULL, NULL, NULL)
  119. ICONGROUP_VERBOSE(BM_NewFolderO, &BM_NewFolderO, NULL, NULL, NULL)
  120.  
  121. ICONGROUP(BM_QFile)
  122. ICONGROUP_VERBOSE(LocationProxy, &LocationProxy, NULL, &LocationProxy_mo, &LocationProxy_mo)
  123.  
  124. #if defined(MOZ_MAIL_NEWS) || !defined(WANT_GROUPS)
  125.  
  126. /* Mail/News Toolbar stuff. */
  127. ICONGROUP(MNTB_GetMsg)
  128. ICONGROUP(MNTB_Compose)
  129. ICONGROUP(MNTB_AddGroup)
  130. ICONGROUP_VERBOSE(MN_Mommy, &MN_BackToParent, NULL, NULL, NULL)
  131.  
  132. /* Message Window. */
  133. ICONGROUP(MNTB_Reply)
  134. ICONGROUP(MNTB_ReplyAll)
  135. ICONGROUP(MNTB_Forward)
  136. ICONGROUP(MNTB_File)
  137. ICONGROUP(MNTB_Trash)
  138. ICONGROUP(MNTB_Next)
  139. ICONGROUP(MNTB_Prev)
  140. ICONGROUP(MNTB_MarkRead)
  141.  
  142. /* Message Center */
  143. ICONGROUP(MNTB_NewFolder)
  144.  
  145. /* Toolbar Security */
  146. ICONGROUP(MNTB_SignUnsecure)
  147. ICONGROUP(MNTB_SignSecure)
  148.  
  149. /* Compose Window. */
  150. ICONGROUP(MNC_Send)
  151. /* MNTB_File */
  152. ICONGROUP(MNC_Quote)
  153. ICONGROUP(MNC_Address)
  154. ICONGROUP_VERBOSE(MNC_Attach, &MNC_Attach, NULL, NULL, NULL)
  155. ICONGROUP(MNC_SpellCheck)
  156. ICONGROUP(MNC_Save)
  157. ICONGROUP(MNC_Directory)
  158. /* Tab Icons */
  159. ICONGROUP_VERBOSE(MNC_AddressSmall, &MNC_AddressSmall, NULL, NULL,NULL)
  160. ICONGROUP_VERBOSE(MNC_AttachSmall,  &MNC_AttachSmall, NULL, NULL,NULL)
  161. ICONGROUP_VERBOSE(MNC_Options, &MNC_Options, NULL,NULL,NULL)
  162.  
  163. ICONGROUP(MN_CollectSmall)
  164. ICONGROUP(MN_Collect)
  165. /* TB_Stop */
  166.  
  167.  
  168. /* Address Book. */
  169. ICONGROUP(MNAB_NewPerson)  // New Card.
  170. ICONGROUP(MNAB_NewList)
  171. ICONGROUP(MNAB_Properties)
  172. /* MNTB_Compose */
  173. /* MNC_Directory */
  174. ICONGROUP(MNAB_Call)
  175. /* MNTB_Trash */
  176. #endif /* !MOZ_MAIL_NEWS || !WANT_GROUPS */
  177.  
  178. #if defined(EDITOR) || !defined(WANT_GROUPS)
  179. /* Editor */
  180. ICONGROUP(ed_new)
  181. ICONGROUP(ed_open)
  182. ICONGROUP(ed_browse)
  183. ICONGROUP(ed_save)
  184. ICONGROUP(ed_publish)
  185. ICONGROUP(ed_cut)
  186. ICONGROUP(ed_copy)
  187. ICONGROUP(ed_paste)
  188. ICONGROUP(ed_link)
  189. ICONGROUP(ed_target)
  190. ICONGROUP(ed_image)
  191. ICONGROUP(ed_hrule)
  192. ICONGROUP(ed_table)
  193. ICONGROUP(ed_bold)
  194. ICONGROUP(ed_italic)
  195. ICONGROUP(ed_underline)
  196. ICONGROUP(ed_bullet)
  197. ICONGROUP(ed_number)
  198. ICONGROUP(ed_indent)
  199. ICONGROUP(ed_outdent)
  200. ICONGROUP(ed_left)
  201. ICONGROUP(ed_center)
  202. ICONGROUP(ed_right)
  203. ICONGROUP(ed_find)
  204. ICONGROUP(ed_spellcheck)
  205. ICONGROUP(ed_print)
  206. ICONGROUP(ed_insert)
  207. ICONGROUP(ed_clear)
  208. #endif /* defined(EDITOR) || !defined(WANT_GROUPS)*/
  209.  
  210. /* TaskBar icons. */
  211. #if defined(MOZ_TASKBAR) || !defined(WANT_GROUPS)
  212. ICONGROUP(Task_MailN)
  213. ICONGROUP(Task_MailY)
  214. ICONGROUP(Task_MailU)
  215. ICONGROUP(Task_Discussions)
  216. ICONGROUP(Task_Browser)
  217. ICONGROUP(Task_Composer)
  218.  
  219. ICONGROUP(TaskSm_MailN)
  220. ICONGROUP(TaskSm_MailY)
  221. ICONGROUP(TaskSm_MailU)
  222. ICONGROUP(TaskSm_Discussions)
  223. ICONGROUP(TaskSm_Browser)
  224. ICONGROUP(TaskSm_Composer)
  225. ICONGROUP_VERBOSE(TaskSm_Handle,  &TaskSm_Handle,  NULL, NULL, NULL)
  226. #endif /* MOZ_TASKBAR || !WANT_GROUPS */
  227.  
  228. #ifdef __cplusplus
  229. extern  "C" {
  230. #endif
  231.  
  232. extern void
  233. IconGroup_createAllIcons        (IconGroup *    group, 
  234.                                  Widget            toplevel, 
  235.                                  Pixel            foreground_pixel,
  236.                                  Pixel            transparent_pixel);
  237.     
  238. extern void
  239. IconGroup_createOneIcon            (fe_icon *                icon,
  240.                                  struct fe_icon_data *    data,
  241.                                  Widget                    toplevel,
  242.                                  Pixel                    foreground_pixel,
  243.                                  Pixel                    background_pixel);
  244.     
  245. extern IconGroup * 
  246. IconGroup_findGroupForName        (char * name);
  247.                                             
  248. #ifdef __cplusplus
  249. }
  250. #endif
  251.  
  252. #endif /* _xfe_icongroup_h */
  253.