1 /* 2 * all prototypes 3 */ 4 /*---------------------------------------- main.c ------------*/ 5 6 extern XtInputId register_X_input( /* tell X about new server connection*/ 7 int fd); /* new connection */ 8 extern void unregister_X_input( /* tell X when server conn. is down */ 9 XtInputId x_id); /* closed connection */ 10 extern void resynchronize_daemon(void); /* tell daemon to re-read database */ 11 extern void set_color( /* set foregnd color to one of COL_* */ 12 int col); 13 extern void print_pixmap( /* prints pixmap into a Pixmap label */ 14 Widget w, /* button to draw into */ 15 int n, /* pixmap #, one of PIC_* */ 16 BOOL b); /* true: black, false: grayed*/ 17 extern void do_get_rsrc( /* read resource */ 18 XtPointer ret, 19 char *res_name, 20 char *res_class_name, 21 char *res_type, 22 int minvalue); 23 extern char *mystrdup( /* strdup replacement for Ultrix */ 24 char *s); 25 extern void exit( /* local version of exit w/ writeback*/ 26 int ret); 27 extern void fatal( /* print error message and exits */ 28 char *fmt, ...); 29 extern void print_button( /* print a string into label or but */ 30 Widget w, 31 char *fmt, ...); 32 extern void print_text_button( /* print a string into a Text button */ 33 Widget w, 34 char *fmt, ...); 35 #ifdef MIPS 36 extern char *getenv(const char *); 37 extern char *malloc(size_t); 38 extern char *realloc(void *, size_t); 39 #endif 40 41 /*---------------------------------------- convert.c ------------*/ 42 43 extern char *mkdatestring( /* convert # of seconds to a date */ 44 time_t time); /* date in seconds */ 45 extern char *mktimestring( /* convert # of seconds to a t-o-d */ 46 time_t time, /* date in seconds */ 47 BOOL dur); /* duration, not time-of-day */ 48 extern time_t parse_datestring( /* convert date string to # of secs */ 49 char *text, /* input string */ 50 time_t dtime); /* appt start time, 0=today */ 51 extern time_t parse_timestring( /* convert time string to # of secs */ 52 char *text, /* input string */ 53 BOOL duration); /* time-of-day or duration? */ 54 extern time_t parse_datetimestring( /* convert date+time to # of secs */ 55 char *text); /* input string */ 56 extern void parse_warnstring( /* early/late warning time, noalarm */ 57 char *text, /* input string */ 58 time_t *early, /* early warning in minutes */ 59 time_t *late, /* late warning in minutes */ 60 BOOL *noalarm); /* final alarm too? */ 61 62 /*---------------------------------------- cyccalc.c ------------*/ 63 64 extern time_t length_of_month( /* # of days in the month <time> */ 65 time_t time); /* some date in the month */ 66 extern BOOL recycle_all( /* recycle all entries in <list> */ 67 struct plist *list, /* list to scan */ 68 BOOL del, /* auto-remove obsolete? */ 69 int days); /* if del, keep if age < days*/ 70 extern int recycle( /* get next repeating trigger time */ 71 struct entry *entry, /* entry to test */ 72 time_t today, /* today (time is ignored) */ 73 time_t *ret); /* returned next trigger time*/ 74 extern BOOL move_todo_entry( /* if it's a todo entry, move it */ 75 struct entry *entry, /* entry to test */ 76 time_t today); /* today (time is ignored) */ 77 78 /*---------------------------------------- dayedit.c ------------*/ 79 80 extern void got_entry_press( /* pressed on list menu button array */ 81 struct listmenu *lw, /* which menu */ 82 int x, /* which column/row */ 83 int y, 84 int on, /* enable radio but: on/off */ 85 int shift); /* arrow but: 1=shift key */ 86 extern void confirm_new_entry(void); /* put edited row back into mainlist */ 87 extern void undo_new_entry(void); /* Kill the edit buffer, undo */ 88 extern void got_entry_text( /* user entered text into text button*/ 89 struct listmenu *lw, /* which menu */ 90 int x, /* which column/row */ 91 int y, 92 char *text); /* text input by user */ 93 extern void sensitize_edit_buttons(void); /* change bottom row */ 94 95 /*---------------------------------------- dbase.c ------------*/ 96 97 extern int name_to_user( /* user name to index into user[] */ 98 char *name); /* name to look up */ 99 extern int add_entry( /* add an entry to a list */ 100 struct plist **list, /* list to add to */ 101 struct entry *entry); /* entry to add */ 102 extern int resort_entry( /* move an entry to its proper place */ 103 struct plist *list, /* list to re-sort */ 104 int n); /* index to changed entry */ 105 extern int find_next_trigger( /* find next alarm/warn trigger time */ 106 struct plist *list, /* list of entries */ 107 time_t time, /* time to locate */ 108 struct entry **entryp, /* ret: entry that was found */ 109 time_t *wait_time); /* ret: how long until triggr*/ 110 extern void create_list( /* start a new list */ 111 struct plist **list); /* pointer to list pointer */ 112 extern void destroy_list( /* delete a list. */ 113 struct plist **list); /* pointer to list pointer */ 114 extern void delete_entry( /* delete an entry from the list. */ 115 struct plist *list, /* list to delete from */ 116 int n); /* index to entry to delete */ 117 extern void clone_entry( /* copy one entry to another */ 118 struct entry *new, /* entry to fill in */ 119 struct entry *old); /* entry to clone, or 0 */ 120 extern void rebuild_repeat_chain( /* chain all repeating entries */ 121 struct plist *list); /* list to delete from */ 122 extern void destroy_entry( /* free all strings of an entry */ 123 struct entry *entry); /* entry to destroy */ 124 extern BOOL lookup_entry( /* find an entry in the list by date */ 125 struct lookup *lookup, /* return struct */ 126 struct plist *list, /* list of entries */ 127 time_t time, /* time to locate */ 128 BOOL exact, /* need entry, not insert pt */ 129 BOOL norep, /* ignore instances */ 130 char which, /* 'mywod': mon,yr,wk,yov,day*/ 131 int usr); /* user number or -1 */ 132 extern BOOL lookup_next_entry( /* find the next entry */ 133 struct lookup *lookup); /* previously found entry */ 134 extern void delete_entry_by_id( 135 struct plist *list, /* list to delete from */ 136 unsigned int file, /* file ID from server */ 137 int id); /* row ID from server */ 138 139 /*---------------------------------------- file_r.c ------------*/ 140 141 extern char *find_pub_path( /* return the calendar path */ 142 char *path); /* resolve ~ and make absolute */ 143 extern BOOL read_mainlist(void); /* read all files into mainlist */ 144 extern void parse_file_line( /* parse one line from appt file */ 145 struct plist **list, /* list to add to */ 146 char *path, /* file/server to read from */ 147 char *name, /* user name, 0=not yet known*/ 148 char *line); /* line to be parsed */ 149 150 /*---------------------------------------- file_w.c ------------*/ 151 152 extern BOOL copyfile( /* copy one file to another */ 153 char *source, 154 char *target); 155 extern void write_mainlist(void); /* write all modified files */ 156 extern int write_one_entry( /* write one entry to file or server */ 157 int (*callback)(char*), /* function that writes line */ 158 struct entry *ep); /* list entry to write */ 159 160 /*---------------------------------------- vcalendar_r.c ------------*/ 161 162 extern void read_vcal_file( 163 struct plist **list, /* list to add to */ 164 FILE *fp, /* file to read list from */ 165 int u); /* user number */ 166 167 /*---------------------------------------- vcalendar_w.c ------------*/ 168 169 extern void write_vcal_mainlist( 170 char *path); /* write vCalendar data to this file */ 171 172 /*---------------------------------------- help.c ------------*/ 173 174 extern void help_callback( /* print help for a topic */ 175 Widget parent, 176 char *topic); 177 178 /*---------------------------------------- holiday.c ------------*/ 179 180 extern char *parse_holidays( /* eval holiday defs for <year> */ 181 int year, /* year to parse for, 0=1970 */ 182 BOOL force); /* file has changed, re-read */ 183 extern void reset_all_hdays(void); /* delete all known holidays */ 184 extern void seteaster( /* set a holiday relative to Easter */ 185 int off, /* offset in days */ 186 int length, /* length in days */ 187 int pascha); /* 0=Easter, 1=Christian Orthodox */ 188 extern void setdate( /* set holiday by date */ 189 int month, /* 1..12, ANY, or LAST */ 190 int day, /* 1..31, ANY, or LAST */ 191 int year, /* 1..2069, or ANY */ 192 int off, /* offset in days */ 193 int length); /* length in days */ 194 extern void setwday( /* set holiday by weekday */ 195 int num, /* which, 1st..5th, ANY, or LAST */ 196 int wday, /* 1=monday..7=sunday */ 197 int month, /* month, 1..12, ANY, or LAST */ 198 int off, /* offset in days */ 199 int length); /* length in days */ 200 extern void setdoff( /* set holiday by weekday date offset*/ 201 int rel, /* -1=before, -2=after */ 202 int wday, /* 1=monday..7=sunday */ 203 int month, /* month, 1..12, ANY, or LAST */ 204 int day, /* 1..31, ANY, or LAST */ 205 int year, /* 1..2069, or ANY */ 206 int off, /* offset in days */ 207 int length); /* length in days */ 208 extern int day_from_name( 209 char *str); 210 extern int day_from_easter(void); 211 extern int day_from_monthday( 212 int m, 213 int d); 214 extern void monthday_from_day( 215 int day, 216 int *m, 217 int *d, 218 int *y); 219 extern int day_from_wday( 220 int day, 221 int wday, 222 int num); 223 extern void dump_holiday( 224 int year); 225 226 /*---------------------------------------- util.c ------------*/ 227 228 extern char *resolve_tilde( /* return path with ~ replaced */ 229 char *path); /* path with ~ */ 230 extern BOOL find_file( /* find file <name> and store path */ 231 char *buf, /* buffer for returned path */ 232 char *name, /* file name to locate */ 233 BOOL exec); /* must be executable? */ 234 extern BOOL startup_lock( /* make sure program runs only once */ 235 BOOL pland, /* is this plan or pland? */ 236 BOOL force); /* kill competitor */ 237 extern BOOL refresh_lock( 238 char *pathtmp); /* PLANDLOCK or PLANLOCK */ 239 extern void lockfile( 240 FILE *fp, /* file to lock */ 241 BOOL lock); /* TRUE=lock, FALSE=unlock */ 242 extern int mystrcasecmp( /* local version of strcasecmp */ 243 char *a, 244 char *b); 245 void mybzero( 246 void *p, 247 int n); 248 void print_info_line(void); 249 char to_ascii( 250 char *str, /* string to convert to ascii */ 251 int def); /* default if string is empty */ 252 253 /*---------------------------------------- xutil.c ------------*/ 254 255 extern void init_pixmaps(void); /* intialize pixmaps for mode buttons*/ 256 extern void print_icon_name(void); /* change the name below the icon */ 257 extern void set_icon( /* set icon for the application */ 258 Widget shell, 259 int sub); /* 0=main, 1=submenu */ 260 extern int strlen_in_pixels( /* return length of string in pixels */ 261 char *string, /* string to truncate */ 262 int sfont); /* FONT_* */ 263 extern void truncate_string( /* truncate string to fit into n pixs*/ 264 char *string, /* string to truncate */ 265 int len, /* max len in pixels */ 266 int sfont); /* font of string */ 267 extern void drag_init( 268 int view, /* 'm', 'd', 'w', or 'o' */ 269 Widget canvas, /* drawing area to initialize */ 270 Widget info, /* label widget for info messages */ 271 void (*rcb)(), /* redraw callback */ 272 MOUSE (*lcb)()); /* locate position in canvas */ 273 extern void drag_destroy( 274 int view); /* 'm', 'd', 'w', or 'o' */ 275 276 /*---------------------------------------- popup.c ------------*/ 277 278 extern void create_about_popup(void); /* create About info popup */ 279 extern void create_nodaemon_popup(void);/* create no-daemon warning popup */ 280 extern void create_multiple_popup( /* create multiple-plan's warning */ 281 BOOL nolock); /* tried to kill competitor */ 282 extern void multiple_writer_warning_popup( /* create write warning popup */ 283 Widget widget); /* install near this widget */ 284 extern void new_language_popup( /* selected new language */ 285 Widget widget); /* install near this widget */ 286 extern void create_error_popup( 287 Widget widget, 288 int error, 289 char *fmt, ...); 290 291 /*---------------------------------------- print.c ------------*/ 292 293 extern void create_print_popup(void); /* create a print popup */ 294 295 /*---------------------------------------- sublist.c ------------*/ 296 297 extern void create_sublist( /* create a sublist for list menu */ 298 struct plist *list, /* main list with all entries*/ 299 struct listmenu *w); /* menu we are doing this for*/ 300 extern void destroy_sublist( /* destroy the sublist of a list menu*/ 301 struct listmenu *w); /* menu we are doing this for*/ 302 303 /*---------------------------------------- time.c ------------*/ 304 305 extern void set_tzone(void); /* figure out current timezone */ 306 extern void guess_tzone(void); /* guess timezone from $TZ */ 307 extern time_t tm_to_time( /* convert tm struct to seconds */ 308 struct tm *tm); /* time/date to convert */ 309 extern time_t get_time(void); /* current time in seconds */ 310 extern time_t date_to_time( /* day/month/year as # of secs */ 311 int day, 312 int month, 313 int year, 314 int *wkday, 315 int *julian, 316 int *weeknum); 317 extern struct tm *time_to_tm( /* seconds to tm struct */ 318 time_t t); /* time to convert */ 319 320 /*---------------------------------------- weekcalc.c ------------*/ 321 322 extern void build_week( /* week node tree for curr_week */ 323 BOOL omit_priv, /* ignore private (padlocked) entries*/ 324 BOOL omit_all); /* ignore all ent (not very useful) */ 325 extern void destroy_week(void); /* release the week node trees. */ 326 327 /*---------------------------------------- yovcalc.c ------------*/ 328 329 extern void build_yov( /* week node tree for curr_week */ 330 BOOL omit_priv); /* ignore private (padlocked) entries*/ 331 extern void destroy_yov(void); /* release the week node trees. */ 332 333 /*---------------------------------------- daycalc.c ------------*/ 334 335 extern void build_day( /* week node tree for curr_day */ 336 BOOL omit_priv, /* ignore private (padlocked) entries*/ 337 BOOL omit_all); /* ignore all ent (not very useful) */ 338 extern void destroy_day(void); /* release the day node trees. */ 339 340 /*---------------------------------------- adjmenu.c ------------*/ 341 342 extern void create_adjust_popup(void); /* create an adjust popup */ 343 344 /*---------------------------------------- calmenu.c ------------*/ 345 346 extern void create_cal_widgets( /* create the main calendar window */ 347 Widget toplevel); 348 extern void create_view( /* create a new month/week/... view */ 349 int view); /* m, w, y, o, d */ 350 extern Widget create_view_form( /* make a window or form for a view */ 351 Widget *shell, /* if shell exists, widget, else &0 */ 352 Widget parent, /* parent widget (mainview) if share */ 353 int view, /* m, w, y, o, d */ 354 int xs, /* requested form width */ 355 int ys, /* requested form height */ 356 char *name); /* window name */ 357 extern void redraw_all_views(void); /* refraw all existing views */ 358 extern void get_widget_size( /* get the size of a widget */ 359 Widget w, 360 Dimension *xs, 361 Dimension *ys); 362 extern void set_widget_size( /* set the size of a widget */ 363 Widget w, 364 Dimension xs, 365 Dimension ys); 366 367 /*---------------------------------------- cnfmenu.c ------------*/ 368 369 extern void create_config_popup(void); /* create a config popup */ 370 371 /*---------------------------------------- cycmenu.c ------------*/ 372 373 extern void destroy_recycle_popup(void);/* destroy a popup */ 374 extern void create_recycle_popup(void); /* create a recycle popup */ 375 376 /*---------------------------------------- daymenu.c ------------*/ 377 378 extern void destroy_all_listmenus(void);/* destroy all list menus */ 379 extern void update_all_listmenus(BOOL); /* redraw (opt.reeval) all list menus*/ 380 extern void create_entry_widgets( /* creates all widgets in a list menu*/ 381 struct listmenu *w, 382 int nentries); 383 extern void edit_list_button( /* turn text button to label or back */ 384 int doedit, /* 1=edit, 0=unedit, 2=del */ 385 struct listmenu *w, /* create which menu */ 386 int x, /* column, SC_* */ 387 int y); /* row, y=0: title */ 388 extern void create_list_popup( /* create a list popup */ 389 struct plist *list, 390 time_t time, /* for what day? */ 391 time_t period, /* for how many days? */ 392 char *key, /* keyword lookup? */ 393 struct entry *entry, /* just this one entry? */ 394 int user_plus_1, /* which user file */ 395 BOOL private); /* only private */ 396 extern BOOL prepare_for_modify( /* check if user file is writable */ 397 char *name); /* user name or 0 */ 398 399 /*---------------------------------------- excmenu.c ------------*/ 400 401 extern void destroy_except_popup(void); /* destroy a popup */ 402 extern void create_except_popup(void); /* create an exception */ 403 404 /*---------------------------------------- gotomenu.c ------------*/ 405 406 extern void create_goto_popup(void); /* create a goto popup */ 407 408 /*---------------------------------------- holmenu.c ------------*/ 409 410 extern void create_holiday_popup(void); /* create a holiday popup */ 411 412 /*---------------------------------------- keymenu.c ------------*/ 413 414 extern void create_keyword_popup(void); /* create a keyword popup */ 415 416 /*---------------------------------------- monmenu.c ------------*/ 417 418 extern void destroy_month_view(void); /* destroy month view */ 419 extern void create_month_view( /* create month view */ 420 Widget parent); 421 422 /*---------------------------------------- msgmenu.c ------------*/ 423 424 extern void destroy_text_popup(void); /* destroy a popup */ 425 extern void create_text_popup( /* create a message or script popup */ 426 char *title, /* menu title string */ 427 char **initial, /* initial default text */ 428 int x, /* button pressed, SC_* */ 429 BOOL readonly); /* just show, no editing */ 430 431 /*---------------------------------------- notmenu.c ------------*/ 432 433 extern void create_widgets( 434 Widget toplevel, 435 char *title, /* title string */ 436 char *subtitle, /* subtitle string */ 437 char *msg); /* message text */ 438 439 /*---------------------------------------- rangemenu.c ------------*/ 440 441 extern void create_calconfig_popup(void);/* create a week view range popup */ 442 443 /*---------------------------------------- usermenu.c ------------*/ 444 445 extern BOOL all_files_served(void); /* all files read from IP servers? */ 446 extern void create_user_popup(void); /* create user popup */ 447 extern void create_user_rows(void); /* make enough rows in user menu list*/ 448 extern void draw_user_row(int); /* redraw a row in the user menu list*/ 449 450 /*---------------------------------------- servmenu.c ------------*/ 451 452 extern void destroy_serv_popup(void); 453 extern void create_serv_popup(void); 454 455 /*---------------------------------------- weekmenu.c ------------*/ 456 457 extern void destroy_week_menu(void); 458 extern void create_week_menu( /* create the week menu for curr_week*/ 459 Widget parent); 460 461 /*---------------------------------------- yearmenu.c ------------*/ 462 463 extern void destroy_year_menu(void); /* destroy the year window */ 464 extern void create_year_menu( /* create year calendar for curr_year*/ 465 Widget parent); 466 467 /*---------------------------------------- yearmenu.c ------------*/ 468 469 extern void destroy_yov_menu(void); 470 extern void create_yov_menu( 471 Widget parent); 472 473 /*---------------------------------------- daymenu.c ------------*/ 474 475 extern void destroy_day_menu(void); 476 extern void create_day_menu( /* create the day menu for curr_day */ 477 Widget parent); 478 479 /*---------------------------------------- editdraw.c ------------*/ 480 481 extern void draw_list( /* draw or redraw a list of entries */ 482 struct listmenu *w); /* draw into which menu */ 483 extern char *mkbuttonstring( /* string to draw into a text button */ 484 struct listmenu *lw, /* menu the button is in */ 485 int x, /* column and row (y >= 1) */ 486 int y); 487 extern char *mknotestring( /* return string to draw into note */ 488 struct entry *ep); /* entry pointer */ 489 extern BOOL show_except_pixmap( /* should appt show PIC_EXCEPT? */ 490 struct entry *ep); 491 492 /*---------------------------------------- mondraw.c ------------*/ 493 494 extern MOUSE locate_in_month_calendar( /* press in calendar day box */ 495 struct entry **epp, /* returned entry or 0 */ 496 BOOL *warn, /* is *epp an n-days-ahead w?*/ 497 time_t *time, /* if *epp=0, clicked where */ 498 time_t *trigger, /* if *epp=0, entry trigger */ 499 int *xp, /* if M_INSIDE, rubber box position */ 500 int *yp, 501 int *xsp, /* and size */ 502 int *ysp, 503 int xc, /* pixel pos clicked */ 504 int yc); 505 extern void draw_month_year(void); /* draw month and year into calendar */ 506 extern void draw_calendar( /* draw day grid into main calendar */ 507 Region region); 508 extern void draw_day( /* draw one day box into the day grid*/ 509 int day); /* 1..31 : current month */ 510 /* < 1 : previous month */ 511 /* > monthlen : next month */ 512 513 /*---------------------------------------- weekdraw.c ------------*/ 514 515 extern MOUSE locate_in_week_calendar( /* press on the week display detected*/ 516 struct entry **epp, /* returned entry or 0 */ 517 BOOL *warn, /* is *epp an n-days-ahead w?*/ 518 time_t *time, /* if *epp=0, clicked where */ 519 time_t *trigger, /* if *epp=0, entry trigger */ 520 int *xp, /* if M_INSIDE, rubber box */ 521 int *yp, 522 int *xsp, /* position and size */ 523 int *ysp, 524 int xc, /* pixel pos clicked */ 525 int yc); 526 extern void draw_week_day( /* day d/m/y has changed, redraw week*/ 527 int day, 528 int month, 529 int year); 530 extern void draw_week_calendar( /* resize and redraw week menu */ 531 Region region); 532 extern void print_week_calendar( /* print PostScript week to fp */ 533 FILE *fp, 534 BOOL landscape); 535 536 /*---------------------------------------- daydraw.c ------------*/ 537 538 extern MOUSE locate_in_day_calendar( /* press on the day display detected */ 539 struct entry **epp, /* returned entry or 0 */ 540 BOOL *warn, /* is *epp an n-days-ahead w?*/ 541 time_t *time, /* if *epp=0, clicked where */ 542 time_t *trigger, /* if *epp=0, entry trigger */ 543 int *xp, /* if M_INSIDE, rubber box */ 544 int *yp, 545 int *xsp, /* position and size */ 546 int *ysp, 547 int xc, /* pixel pos clicked */ 548 int yc); 549 extern void draw_day_calendar( /* resize and redraw day menu */ 550 Region region); 551 extern void print_day_calendar( /* print PostScript day to fp */ 552 FILE *fp, 553 BOOL landscape); 554 555 /*---------------------------------------- yovdraw.c ------------*/ 556 557 extern MOUSE locate_in_yov_calendar( /* press on the yov display detected */ 558 struct entry **epp, /* returned entry or 0 */ 559 BOOL *warn, /* is *epp an n-days-ahead w?*/ 560 time_t *time, /* if *epp=0, clicked where */ 561 time_t *trigger, /* if *epp=0, entry trigger */ 562 int *xp, /* if M_INSIDE, rubber box */ 563 int *yp, 564 int *xsp, /* position and size */ 565 int *ysp, 566 int xc, /* pixel pos clicked */ 567 int yc); 568 extern void draw_yov_calendar( /* resize and redraw yov menu */ 569 Region region); 570 extern void print_yov_calendar( /* print PostScript yov to fp */ 571 FILE *fp); 572 573 /*---------------------------------------- yeardraw.c ------------*/ 574 575 extern void draw_year_calendar( /* draw day grid into year cal */ 576 Region region); 577 extern void draw_year_day( /* draw one day box into year cal */ 578 int day, /* 1..31 */ 579 int month, /* 0..11 */ 580 int year); /* year since 1900 */ 581 extern int clicked_year_calendar( /* got a click in the calendar area */ 582 int x, /* pixel pos clicked */ 583 int y); 584 585 /*---------------------------------------- psdraw.c ------------*/ 586 587 extern BOOL g_init_window( /* init week/yov window drawing */ 588 struct week *week, /* either &week or &yov */ 589 Region newregion); /* draw only here */ 590 extern void g_exit_window(void); /* finish week/yov window drawing */ 591 extern void g_init_ps( /* init week/yov PostScript drawing */ 592 struct week *week, /* either &week or &yov */ 593 FILE *newfp, 594 BOOL landscape); 595 extern void g_exit_ps(void); /* finish week/yov PostScript drawing*/ 596 extern void g_setcolor( /* select COL_* color */ 597 int color); 598 extern void g_setfont( /* select FONT_* font */ 599 int fonti); 600 extern void g_fillrect( /* draw filled rectangle */ 601 int x, 602 int y, 603 int xs, 604 int ys); 605 extern void g_drawtext( /* draw latin text string */ 606 int x, 607 int y, 608 char *text, 609 int len); 610 extern void g_drawtext16( /* draw Japanese text string */ 611 int x, 612 int y, 613 char *text, 614 int len); 615 extern void g_drawpoly( /* draw filled polygon */ 616 XPoint *point, 617 int num, 618 BOOL checker); 619 extern void g_drawlines( /* draw connected lines */ 620 XPoint *point, 621 int num); 622 623 /*---------------------------------------- usersel.c ------------*/ 624 625 extern void destroy_user_sel_popup(void); 626 extern void create_user_sel_popup( 627 Widget widget, /* install popup near this button */ 628 int curr, /* current user ID (default) */ 629 BOOL (*callb)(int)); /* function to call with new user ID */ 630 631 /*---------------------------------------- network.c ------------*/ 632 633 extern BOOL can_edit_appts(void); /* ok to edit appointments? */ 634 extern int connect_netplan_server( 635 char *uhost, /* requested server host name */ 636 char *uname, /* user file name req'd from server */ 637 char *msg); /* for appending error message */ 638 extern char *attach_to_network(void); /* (re)connect to net, reread appts */ 639 extern void detach_from_network(void); /* disconnect from all servers */ 640 extern int name_to_file( /* convert file/user name to file ID */ 641 char *name); /* name to locate */ 642 extern BOOL server_entry_op( /* link, unlink, delete, send entry */ 643 struct entry *entry, /* entry to lock/unlock/delete */ 644 char op); /* l=lock, u=unlock, d=del, w=write */ 645 extern void read_from_server( /* read one or all appointments */ 646 struct plist **list, /* list to add to */ 647 int uid, /* user[] index or -1 */ 648 int rid); /* entry ID, or 0 for all */ 649 extern BOOL puts_server( /* send message to a server */ 650 int fd, /* socket descriptor to send to */ 651 char *msg); /* message string to send, 0-term */ 652 extern BOOL gets_server( /* receive message from server */ 653 int fd, /* socket descriptor to send to */ 654 char *msg, /* buffer for incoming message */ 655 int num, /* size of msg buffer (paranoia...) */ 656 BOOL wait, /* need reply, not just '?' and 'R' */ 657 BOOL cont); /* expecting a continuation line? */ 658 extern int open_and_count_rows_on_server( 659 int uid); /* user[] index */ 660 extern BOOL get_netplan_filelist( 661 char *uhost, /* server host to request from */ 662 char ***list, /* returned list */ 663 int *num); /* returned # of entries in list */ 664 extern void obtain_netplan_users( 665 char *uhost); /* server host to request from */ 666 667 /*---------------------------------------- language.c ------------*/ 668 669 extern char *_(char *); /* translate a string to current lang*/ 670 extern char *get_language_name( /* return name of n-th language */ 671 int n); /* number of language */ 672 673 674 /* 675 * grok prototypes 676 */ 677 678 /*---------------------------------------- g_dbase.c ------------*/ 679 680 extern struct dbase *dbase_create(void); 681 extern void dbase_delete( 682 struct dbase *dbase); /* dbase to delete */ 683 extern BOOL dbase_addrow( 684 int *rowp, /* ptr to returned row number */ 685 struct dbase *dbase); /* database to add row to */ 686 extern void dbase_delrow( 687 int nrow, /* row to delete */ 688 struct dbase *dbase); /* database to delete row in */ 689 extern char *dbase_get( 690 struct dbase *dbase, /* database to get string from */ 691 int nrow, /* row to get */ 692 int ncolumn); /* column to get */ 693 extern BOOL dbase_put( 694 struct dbase *dbase, /* database to put into */ 695 int nrow, /* row to put into */ 696 int ncolumn, /* column to put into */ 697 char *data); /* string to store */ 698 699 /*---------------------------------------- g_dbfile.c ------------*/ 700 701 extern BOOL write_dbase( 702 struct dbase *dbase, /* form and items to write */ 703 struct form *form, /* contains column delimiter */ 704 BOOL force); /* write even if not modified*/ 705 extern BOOL read_dbase( 706 struct dbase *dbase, /* form and items to write */ 707 struct form *form, /* contains column delimiter */ 708 char *path); /* file to read list from */ 709 710 /*---------------------------------------- g_formfile.c ------------*/ 711 712 extern BOOL write_form( 713 struct form *form); /* form and items to write */ 714 extern BOOL read_form( 715 struct form *form, /* form and items to write */ 716 char *path); /* file to read list from */ 717 718 /*---------------------------------------- g_formop.c ------------*/ 719 720 extern struct form *form_create(void); 721 extern struct form *form_clone( 722 struct form *parent); /* old form */ 723 extern void form_delete( 724 struct form *form); /* form to delete */ 725 extern BOOL verify_form( 726 struct form *form, /* form to verify */ 727 int *bug, /* retuirned buggy item # */ 728 Widget shell); /* error popup parent */ 729 extern void form_edit_script( 730 struct form *form, /* form to edit */ 731 Widget shell, /* error popup parent */ 732 char *fname); /* file name of script (dbase name) */ 733 extern void form_sort( 734 struct form *form); /* form to sort */ 735 extern void item_deselect( 736 struct form *form); /* describes form and all items in it*/ 737 extern BOOL item_create( 738 struct form *form, /* describes form and all items in it*/ 739 int nitem); /* the current item, insert point */ 740 extern void item_delete( 741 struct form *form, /* describes form and all items in it*/ 742 int nitem); /* the current item, insert point */ 743 extern struct item *item_clone( 744 struct item *parent); /* item to clone */ 745