438 lines
18 KiB
C
438 lines
18 KiB
C
/****************************************************************************
|
|
* NCSA Mosaic for the X Window System *
|
|
* Software Development Group *
|
|
* National Center for Supercomputing Applications *
|
|
* University of Illinois at Urbana-Champaign *
|
|
* 605 E. Springfield, Champaign IL 61820 *
|
|
* mosaic@ncsa.uiuc.edu *
|
|
* *
|
|
* Copyright (C) 1993, Board of Trustees of the University of Illinois *
|
|
* *
|
|
* NCSA Mosaic software, both binary and source (hereafter, Software) is *
|
|
* copyrighted by The Board of Trustees of the University of Illinois *
|
|
* (UI), and ownership remains with the UI. *
|
|
* *
|
|
* The UI grants you (hereafter, Licensee) a license to use the Software *
|
|
* for academic, research and internal business purposes only, without a *
|
|
* fee. Licensee may distribute the binary and source code (if released) *
|
|
* to third parties provided that the copyright notice and this statement *
|
|
* appears on all copies and that no charge is associated with such *
|
|
* copies. *
|
|
* *
|
|
* Licensee may make derivative works. However, if Licensee distributes *
|
|
* any derivative work based on or derived from the Software, then *
|
|
* Licensee will (1) notify NCSA regarding its distribution of the *
|
|
* derivative work, and (2) clearly notify users that such derivative *
|
|
* work is a modified version and not the original NCSA Mosaic *
|
|
* distributed by the UI. *
|
|
* *
|
|
* Any Licensee wishing to make commercial use of the Software should *
|
|
* contact the UI, c/o NCSA, to negotiate an appropriate license for such *
|
|
* commercial use. Commercial use includes (1) integration of all or *
|
|
* part of the source code into a product for sale or license by or on *
|
|
* behalf of Licensee to third parties, or (2) distribution of the binary *
|
|
* code or source code to third parties that need it to utilize a *
|
|
* commercial product sold or licensed by or on behalf of Licensee. *
|
|
* *
|
|
* UI MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR *
|
|
* ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED *
|
|
* WARRANTY. THE UI SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY THE *
|
|
* USERS OF THIS SOFTWARE. *
|
|
* *
|
|
* By using or copying this Software, Licensee agrees to abide by the *
|
|
* copyright law and all other applicable laws of the U.S. including, but *
|
|
* not limited to, export control laws, and the terms of this license. *
|
|
* UI shall have the right to terminate this license immediately by *
|
|
* written notice upon Licensee's breach of, or non-compliance with, any *
|
|
* of its terms. Licensee may be held legally responsible for any *
|
|
* copyright infringement that is caused or encouraged by Licensee's *
|
|
* failure to abide by the terms of this license. *
|
|
* *
|
|
* Comments and questions are welcome and can be sent to *
|
|
* mosaic-x@ncsa.uiuc.edu. *
|
|
****************************************************************************/
|
|
|
|
#ifndef __POPUP_H__
|
|
#define __POPUP_H__
|
|
|
|
#include "mosaic.h"
|
|
#include "libhtmlw/HTML.h"
|
|
#include "hotlist.h"
|
|
#include <Xm/DrawingA.h>
|
|
#include <Xm/ScrollBar.h>
|
|
#include <Xm/PushBG.h>
|
|
#include <Xm/SeparatoG.h>
|
|
#include <Xm/CascadeBG.h>
|
|
#include <Xm/ToggleBG.h>
|
|
#include <Xm/RowColumn.h>
|
|
#include <Xm/FileSB.h>
|
|
#include <X11/Xatom.h>
|
|
|
|
#define MAX_NUM_POPUP_ITEMS 50
|
|
#define ALL_TYPES (E_TEXT | E_BULLET | E_LINEFEED | E_IMAGE | E_WIDGET | E_HRULE | E_TABLE | E_ANCHOR)
|
|
#define TIGHT 0
|
|
#define LOOSE 1
|
|
#define COPY_URL_LABEL "Copy Link URL"
|
|
|
|
#define NEWS_NOANCHOR (E_TEXT | E_BULLET | E_LINEFEED | E_WIDGET | E_HRULE |E_TABLE)
|
|
|
|
typedef enum _w_class { LastItem=1, PushButton, Separator, CascadeButton,
|
|
ToggleButton, Widgt } w_class;
|
|
enum { I_Save, I_ViewExternal, I_ViewInternal, I_Reload,
|
|
M_ImageData, M_LinkData, M_FileData };
|
|
|
|
typedef struct act_struct
|
|
{
|
|
int act_code;
|
|
struct ele_rec *eptr;
|
|
void *str;
|
|
} act_struct;
|
|
|
|
typedef struct PopupItem
|
|
{
|
|
/* the top half must be filled in if this is to appear in the popup */
|
|
|
|
w_class class; /* this is a button, separator, label, cascade */
|
|
unsigned long int types; /* for which widget elements this button is to
|
|
popup for (the list of elements is below) */
|
|
int types_method; /* if TIGHT use == if LOOSE use & */
|
|
|
|
unsigned long int modes; /* news, http, ftp, etc. */
|
|
int modes_method; /* if TIGHT use == if LOOSE use & */
|
|
|
|
char *label;
|
|
|
|
/* these are needed for a button class */
|
|
|
|
struct act_struct acst; /* identifies the action */
|
|
void (*cbfp)(); /* callback function that takes act_struct
|
|
as client data */
|
|
|
|
/* theses are optional */
|
|
|
|
char mnemonic;
|
|
char *accel_text;
|
|
char *accel;
|
|
|
|
/* this is needed for a cascade class */
|
|
|
|
struct PopupItem *sub_items; /* NULL if this isn't a
|
|
pull_right */
|
|
|
|
/* this is for internal uses */
|
|
|
|
Widget _w;
|
|
int startup; /* are we sensitive when we start */
|
|
|
|
} PopupItem;
|
|
|
|
XmxCallbackPrototype (menubar_cb);
|
|
XmxCallbackPrototype (image_cb);
|
|
XmxCallbackPrototype (metadata_cb);
|
|
XmxCallbackPrototype (user_defs_cb);
|
|
XmxCallbackPrototype (ftp_rmbm_cb);
|
|
XmxCallbackPrototype (fsb_OKCallback);
|
|
XmxCallbackPrototype (fsb_CancelCallback);
|
|
XmxCallbackPrototype (copy_link_cb);
|
|
XmxCallbackPrototype (session_cb);
|
|
XmxCallbackPrototype (rbm_ballonify);
|
|
void fsb();
|
|
void ThirdButtonMenu();
|
|
char *getFileName(char *file_src);
|
|
Widget _PopupMenuBuilder(Widget parent, int type, char *title,
|
|
char mnem, PopupItem *items);
|
|
extern struct ele_rec *LocateElement();
|
|
void _set_eptr_field();
|
|
void mo_popup_set_something();
|
|
PopupItem *popup_build_user_defs();
|
|
PopupItem *build_user_defs_items();
|
|
char **user_defs_get_entries();
|
|
extern mo_window *current_win;
|
|
extern int file_exists();
|
|
extern char *my_chop();
|
|
extern char *my_strndup();
|
|
extern char *mo_escape_part();
|
|
|
|
void mo_make_popup();
|
|
void mo_init_hotmenu();
|
|
|
|
void mo_add_to_rbm_history(mo_window *win, char *url, char *title);
|
|
|
|
static Boolean convert_selection(Widget, Atom *, Atom *, Atom *, XtPointer *,
|
|
unsigned long *, int *);
|
|
|
|
#ifdef GUI_POPUP_H /* this is set in gui-popup.c -- it prevents multiple
|
|
instances of the following variables */
|
|
|
|
Boolean have_popup;
|
|
Widget popup = NULL;
|
|
|
|
PopupItem image_menu[] = {
|
|
{PushButton, 0, 0, 0, 0, "Save", {I_Save, NULL, NULL}, image_cb, 0, NULL,
|
|
NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Reload", {I_Reload, NULL, NULL}, image_cb, 0,
|
|
NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "View External", {I_ViewExternal, NULL, NULL},
|
|
image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "View Internal", {I_ViewInternal, NULL, NULL},
|
|
image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Get Image Metadata", {M_ImageData, NULL, NULL},
|
|
metadata_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
/*
|
|
{LastItem, 0, 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}
|
|
*/
|
|
{ LastItem },
|
|
};
|
|
|
|
PopupItem pan_menu[] = {
|
|
{PushButton, 0, 0, 0, 0, "Right", {0, NULL, NULL}, NULL, 0,
|
|
NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Up", {0, NULL, NULL}, NULL,
|
|
0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Left", {0, NULL, NULL}, NULL, 0,
|
|
NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Down", {0, NULL, NULL}, NULL,
|
|
0, NULL, NULL, NULL, NULL, 1},
|
|
/*
|
|
{LastItem, 0, 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}
|
|
*/
|
|
{ LastItem },
|
|
};
|
|
|
|
PopupItem photo_cd_sub_menu[] = {
|
|
{PushButton, 0, 0, 0, 0,"Zoom In", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0,"Zoom Out", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Zoom Crop", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Crop", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{Separator, 0, 0, 0, 0, "Sep", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0,0, 0, "Enlarge", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Reduce", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{Separator, 0, 0, 0, 0, "Sep", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0,0, 0, "Undo", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{Separator, 0, 0, 0, 0, "Sep", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Rotate Clockwise", {0, NULL, NULL} , NULL, 0, NULL, NULL, NULL,
|
|
NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Rotate Counter-Clockwise", {0, NULL, NULL}, NULL,
|
|
0, NULL, NULL, NULL, NULL, 1},
|
|
{CascadeButton, 0, 0,0, 0, "Pan", {0, NULL, NULL}, NULL, 0, NULL, NULL, pan_menu, NULL, 1},
|
|
{Separator, 0, 0,0, 0, "Sep", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Full Image", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
{PushButton, 0, 0,0, 0,"Reset To Original", {0, NULL, NULL}, NULL, 0, NULL, NULL,
|
|
NULL, NULL, 1},
|
|
{Separator, 0, 0,0, 0, "Separator", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL},
|
|
{PushButton, 0, 0,0, 0,"Print This Image", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL,
|
|
NULL, 1},
|
|
{ToggleButton, 0, 0,0, 0, "Display PhotoCD Icon", {0, NULL, NULL}, NULL, 0, NULL, NULL,
|
|
NULL, NULL, 1},
|
|
{PushButton, 0, 0, 0, 0, "Options", {0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
/*
|
|
{LastItem, 0, 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}
|
|
*/
|
|
{ LastItem },
|
|
};
|
|
|
|
PopupItem file_menu[] = {
|
|
|
|
{PushButton, 0, 0, 0, 0, "Save Page", {mo_save_document, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, 0, 0, 0, 0, "Print", {mo_print_document, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, 0, 0, 0, 0, "Mail To", {mo_mail_document, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, 0, 0, 0, 0, "Get File Metadata", {M_FileData, NULL, NULL},
|
|
metadata_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{ LastItem },
|
|
};
|
|
|
|
PopupItem popup_items[] = {
|
|
|
|
/*---------------------------------------------------------------
|
|
Permanent stuff
|
|
---------------------------------------------------------------*/
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_ALL, LOOSE,"Back",
|
|
{mo_back, NULL, NULL},
|
|
menubar_cb, 0, "B", NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_ALL, LOOSE, "Forward",
|
|
{mo_forward, NULL, NULL},
|
|
menubar_cb, 0, "F", NULL, NULL, NULL, 1},
|
|
|
|
/* negative one means this is a hotlist */
|
|
{CascadeButton, ALL_TYPES, LOOSE, moMODE_ALL, LOOSE, "Hotlist",
|
|
{-1, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{CascadeButton, ALL_TYPES, LOOSE, moMODE_ALL, LOOSE, "User",
|
|
{0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{CascadeButton, ALL_TYPES, LOOSE, moMODE_ALL, LOOSE, "Session History",
|
|
{-2, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on a html page and not on a image or anchor
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, (E_TEXT | E_BULLET | E_LINEFEED | E_WIDGET | E_HRULE |E_TABLE),
|
|
LOOSE, moMODE_ALL, LOOSE, "Separator", {0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{CascadeButton, (E_TEXT | E_BULLET | E_LINEFEED | E_WIDGET | E_HRULE |
|
|
E_TABLE),LOOSE, moMODE_ALL, LOOSE, "File",
|
|
{0, NULL, NULL}, NULL, 0, NULL, NULL, file_menu, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on any page and an anchor (including image anchor)
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, E_ANCHOR | E_IMAGE, LOOSE, moMODE_ALL, LOOSE, "Separator",
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR | E_IMAGE, LOOSE, moMODE_ALL, LOOSE, COPY_URL_LABEL,
|
|
{0, NULL, NULL}, copy_link_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR | E_IMAGE, LOOSE, moMODE_ALL, LOOSE, "Get Link Metadata",
|
|
{M_LinkData, NULL, NULL}, metadata_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on any page and a image (not including image link)
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "Separator",
|
|
{0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "Save",
|
|
{I_Save, NULL, NULL}, image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "Reload",
|
|
{I_Reload, NULL, NULL},
|
|
image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "View External",
|
|
{I_ViewExternal, NULL, NULL}, image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "View Internal",
|
|
{I_ViewInternal, NULL, NULL}, image_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_IMAGE, TIGHT, moMODE_ALL, LOOSE, "Get Image Metadata",
|
|
{M_ImageData, NULL, NULL}, metadata_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on any page and a image link
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, E_IMAGE | E_ANCHOR, TIGHT, moMODE_PLAIN, LOOSE, "Separator",
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{CascadeButton, E_IMAGE | E_ANCHOR, TIGHT, moMODE_PLAIN, LOOSE, "Image",
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, image_menu, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on a ftp page
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, ALL_TYPES, LOOSE, moMODE_FTP, TIGHT, "Separator",
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_FTP, TIGHT, "Put ...",
|
|
{mo_ftp_put, NULL, NULL},
|
|
ftp_rmbm_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_FTP, TIGHT, "Make Directory",
|
|
{mo_ftp_mkdir, NULL, NULL}, ftp_rmbm_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR, TIGHT, moMODE_FTP, TIGHT, "Remove",
|
|
{mo_ftp_remove, NULL, NULL}, ftp_rmbm_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
/*---------------------------------------------------------------
|
|
Stuff if on a news page and not a link
|
|
---------------------------------------------------------------*/
|
|
|
|
{Separator, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Separator",
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Next Article",
|
|
{mo_news_next, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Previous Article",
|
|
{mo_news_prev, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Next Thread",
|
|
{mo_news_nextt, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Previous Thread",
|
|
{mo_news_prevt, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Article Index",
|
|
{mo_news_index, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Group Index",
|
|
{mo_news_groups, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{Separator, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, NULL,
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Post",
|
|
{mo_news_post, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, "Followup",
|
|
{mo_news_follow, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
|
|
{Separator, ALL_TYPES, LOOSE, moMODE_NEWS, TIGHT, NULL,
|
|
{0, NULL, NULL},
|
|
NULL, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, NEWS_NOANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Subscribe",
|
|
{mo_news_sub, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, NEWS_NOANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Unsubscribe",
|
|
{mo_news_unsub, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Subscribe",
|
|
{mo_news_sub_anchor, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Unsubscribe",
|
|
{mo_news_unsub_anchor, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, NEWS_NOANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Mark Group Read",
|
|
{mo_news_mread, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
{PushButton, E_ANCHOR, LOOSE, moMODE_NEWS, TIGHT, "Mark Group Read",
|
|
{mo_news_mread_anchor, NULL, NULL},
|
|
menubar_cb, 0, NULL, NULL, NULL, NULL, 1},
|
|
|
|
/* {Separator, 0, 0, "Separator", 0, NULL, 0,
|
|
NULL, NULL, NULL, NULL},
|
|
|
|
{CascadeButton, 0, 0, "Kodak Photo CD", 0, NULL, 0,
|
|
NULL, NULL, photo_cd_sub_menu, NULL}, */
|
|
|
|
{ LastItem },
|
|
};
|
|
|
|
#endif
|
|
#endif
|