annotate lwlib/xlwcheckbox.c @ 4981:4aebb0131297

Cleanups/renaming of EXTERNAL_TO_C_STRING and friends -------------------- ChangeLog entries follow: -------------------- modules/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * postgresql/postgresql.c: * postgresql/postgresql.c (CHECK_LIVE_CONNECTION): * postgresql/postgresql.c (Fpq_connectdb): * postgresql/postgresql.c (Fpq_connect_start): * postgresql/postgresql.c (Fpq_lo_import): * postgresql/postgresql.c (Fpq_lo_export): * ldap/eldap.c (Fldap_open): * ldap/eldap.c (Fldap_search_basic): * ldap/eldap.c (Fldap_add): * ldap/eldap.c (Fldap_modify): * ldap/eldap.c (Fldap_delete): * canna/canna_api.c (Fcanna_initialize): * canna/canna_api.c (Fcanna_store_yomi): * canna/canna_api.c (Fcanna_parse): * canna/canna_api.c (Fcanna_henkan_begin): EXTERNAL_TO_C_STRING returns its argument instead of storing it in a parameter, and is renamed to EXTERNAL_TO_ITEXT. Similar things happen to related macros. See entry in src/ChangeLog. More Mule-izing of postgresql.c. Extract out common code between `pq-connectdb' and `pq-connect-start'. Fix places that signal an error string using a formatted string to instead follow the standard and have a fixed reason followed by the particular error message stored as one of the frobs. src/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * console-msw.c (write_string_to_mswindows_debugging_output): * console-msw.c (Fmswindows_message_box): * console-x.c (x_perhaps_init_unseen_key_defaults): * console.c: * database.c (dbm_get): * database.c (dbm_put): * database.c (dbm_remove): * database.c (berkdb_get): * database.c (berkdb_put): * database.c (berkdb_remove): * database.c (Fopen_database): * device-gtk.c (gtk_init_device): * device-msw.c (msprinter_init_device_internal): * device-msw.c (msprinter_default_printer): * device-msw.c (msprinter_init_device): * device-msw.c (sync_printer_with_devmode): * device-msw.c (Fmsprinter_select_settings): * device-x.c (sanity_check_geometry_resource): * device-x.c (Dynarr_add_validified_lisp_string): * device-x.c (x_init_device): * device-x.c (Fx_put_resource): * device-x.c (Fx_valid_keysym_name_p): * device-x.c (Fx_set_font_path): * dialog-msw.c (push_lisp_string_as_unicode): * dialog-msw.c (handle_directory_dialog_box): * dialog-msw.c (handle_file_dialog_box): * dialog-x.c (dbox_descriptor_to_widget_value): * editfns.c (Fformat_time_string): * editfns.c (Fencode_time): * editfns.c (Fset_time_zone_rule): * emacs.c (make_argc_argv): * emacs.c (Fdump_emacs): * emodules.c (emodules_load): * eval.c: * eval.c (maybe_signal_error_1): * event-msw.c (Fdde_alloc_advise_item): * event-msw.c (mswindows_dde_callback): * event-msw.c (mswindows_wnd_proc): * fileio.c (report_error_with_errno): * fileio.c (Fsysnetunam): * fileio.c (Fdo_auto_save): * font-mgr.c (extract_fcapi_string): * font-mgr.c (Ffc_config_app_font_add_file): * font-mgr.c (Ffc_config_app_font_add_dir): * font-mgr.c (Ffc_config_filename): * frame-gtk.c (gtk_set_frame_text_value): * frame-gtk.c (gtk_create_widgets): * frame-msw.c (mswindows_init_frame_1): * frame-msw.c (mswindows_set_title_from_ibyte): * frame-msw.c (msprinter_init_frame_3): * frame-x.c (x_set_frame_text_value): * frame-x.c (x_set_frame_properties): * frame-x.c (start_drag_internal_1): * frame-x.c (x_cde_transfer_callback): * frame-x.c (x_create_widgets): * glyphs-eimage.c (my_jpeg_output_message): * glyphs-eimage.c (jpeg_instantiate): * glyphs-eimage.c (gif_instantiate): * glyphs-eimage.c (png_instantiate): * glyphs-eimage.c (tiff_instantiate): * glyphs-gtk.c (xbm_instantiate_1): * glyphs-gtk.c (gtk_xbm_instantiate): * glyphs-gtk.c (gtk_xpm_instantiate): * glyphs-gtk.c (gtk_xface_instantiate): * glyphs-gtk.c (cursor_font_instantiate): * glyphs-gtk.c (gtk_redisplay_widget): * glyphs-gtk.c (gtk_widget_instantiate_1): * glyphs-gtk.c (gtk_add_tab_item): * glyphs-msw.c (mswindows_xpm_instantiate): * glyphs-msw.c (bmp_instantiate): * glyphs-msw.c (mswindows_resource_instantiate): * glyphs-msw.c (xbm_instantiate_1): * glyphs-msw.c (mswindows_xbm_instantiate): * glyphs-msw.c (mswindows_xface_instantiate): * glyphs-msw.c (mswindows_redisplay_widget): * glyphs-msw.c (mswindows_widget_instantiate): * glyphs-msw.c (add_tree_item): * glyphs-msw.c (add_tab_item): * glyphs-msw.c (mswindows_combo_box_instantiate): * glyphs-msw.c (mswindows_widget_query_string_geometry): * glyphs-x.c (x_locate_pixmap_file): * glyphs-x.c (xbm_instantiate_1): * glyphs-x.c (x_xbm_instantiate): * glyphs-x.c (extract_xpm_color_names): * glyphs-x.c (x_xpm_instantiate): * glyphs-x.c (x_xface_instantiate): * glyphs-x.c (autodetect_instantiate): * glyphs-x.c (safe_XLoadFont): * glyphs-x.c (cursor_font_instantiate): * glyphs-x.c (x_redisplay_widget): * glyphs-x.c (Fchange_subwindow_property): * glyphs-x.c (x_widget_instantiate): * glyphs-x.c (x_tab_control_redisplay): * glyphs.c (pixmap_to_lisp_data): * gui-x.c (menu_separator_style_and_to_external): * gui-x.c (add_accel_and_to_external): * gui-x.c (button_item_to_widget_value): * hpplay.c (player_error_internal): * hpplay.c (play_sound_file): * hpplay.c (play_sound_data): * intl.c (Fset_current_locale): * lisp.h: * menubar-gtk.c (gtk_xemacs_set_accel_keys): * menubar-msw.c (populate_menu_add_item): * menubar-msw.c (populate_or_checksum_helper): * menubar-x.c (menu_item_descriptor_to_widget_value_1): * nt.c (init_user_info): * nt.c (get_long_basename): * nt.c (nt_get_resource): * nt.c (init_mswindows_environment): * nt.c (get_cached_volume_information): * nt.c (mswindows_readdir): * nt.c (read_unc_volume): * nt.c (mswindows_stat): * nt.c (mswindows_getdcwd): * nt.c (mswindows_executable_type): * nt.c (Fmswindows_short_file_name): * ntplay.c (nt_play_sound_file): * objects-gtk.c: * objects-gtk.c (gtk_valid_color_name_p): * objects-gtk.c (gtk_initialize_font_instance): * objects-gtk.c (gtk_font_list): * objects-msw.c (font_enum_callback_2): * objects-msw.c (parse_font_spec): * objects-x.c (x_parse_nearest_color): * objects-x.c (x_valid_color_name_p): * objects-x.c (x_initialize_font_instance): * objects-x.c (x_font_instance_truename): * objects-x.c (x_font_list): * objects-xlike-inc.c (XFUN): * objects-xlike-inc.c (xft_find_charset_font): * process-nt.c (mswindows_report_winsock_error): * process-nt.c (nt_create_process): * process-nt.c (get_internet_address): * process-nt.c (nt_open_network_stream): * process-unix.c: * process-unix.c (allocate_pty): * process-unix.c (get_internet_address): * process-unix.c (unix_canonicalize_host_name): * process-unix.c (unix_open_network_stream): * realpath.c: * select-common.h (lisp_data_to_selection_data): * select-gtk.c (symbol_to_gtk_atom): * select-gtk.c (atom_to_symbol): * select-msw.c (symbol_to_ms_cf): * select-msw.c (mswindows_register_selection_data_type): * select-x.c (symbol_to_x_atom): * select-x.c (x_atom_to_symbol): * select-x.c (hack_motif_clipboard_selection): * select-x.c (Fx_store_cutbuffer_internal): * sound.c (Fplay_sound_file): * sound.c (Fplay_sound): * sound.h (sound_perror): * sysdep.c: * sysdep.c (qxe_allocating_getcwd): * sysdep.c (qxe_execve): * sysdep.c (copy_in_passwd): * sysdep.c (qxe_getpwnam): * sysdep.c (qxe_ctime): * sysdll.c (dll_open): * sysdll.c (dll_function): * sysdll.c (dll_variable): * sysdll.c (search_linked_libs): * sysdll.c (dll_error): * sysfile.h: * sysfile.h (PATHNAME_CONVERT_OUT_TSTR): * sysfile.h (PATHNAME_CONVERT_OUT_UTF_8): * sysfile.h (PATHNAME_CONVERT_OUT): * sysfile.h (LISP_PATHNAME_CONVERT_OUT): * syswindows.h (ITEXT_TO_TSTR): * syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR): * syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT): * syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN): * syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR): * text.h: * text.h (eicpy_ext_len): * text.h (enum new_dfc_src_type): * text.h (EXTERNAL_TO_ITEXT): * text.h (GET_STRERROR): * tooltalk.c (check_status): * tooltalk.c (Fadd_tooltalk_message_arg): * tooltalk.c (Fadd_tooltalk_pattern_attribute): * tooltalk.c (Fadd_tooltalk_pattern_arg): * win32.c (tstr_to_local_file_format): * win32.c (mswindows_lisp_error_1): * win32.c (mswindows_report_process_error): * win32.c (Fmswindows_shell_execute): * win32.c (mswindows_read_link_1): Changes involving external/internal format conversion, mostly code cleanup and renaming. 1. Eliminate the previous macros like LISP_STRING_TO_EXTERNAL that stored its result in a parameter. The new version of LISP_STRING_TO_EXTERNAL returns its result through the return value, same as the previous NEW_LISP_STRING_TO_EXTERNAL. Use the new-style macros throughout the code. 2. Rename C_STRING_TO_EXTERNAL and friends to ITEXT_TO_EXTERNAL, in keeping with overall naming rationalization involving Itext and related types. Macros involved in previous two: EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC LISP_STRING_TO_EXTERNAL LISP_STRING_TO_EXTERNAL_MALLOC LISP_STRING_TO_TSTR C_STRING_TO_TSTR -> ITEXT_TO_TSTR TSTR_TO_C_STRING -> TSTR_TO_ITEXT The following four still return their values through parameters, since they have more than one value to return: C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL LISP_STRING_TO_SIZED_EXTERNAL C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC LISP_STRING_TO_SIZED_EXTERNAL_MALLOC Sometimes additional casts had to be inserted, since the old macros played strange games and completely defeated the type system of the store params. 3. Rewrite many places where direct calls to TO_EXTERNAL_FORMAT occurred with calls to one of the convenience macros listed above, or to make_extstring(). 4. Eliminate SIZED_C_STRING macros (they were hardly used, anyway) and use a direct call to TO_EXTERNAL_FORMAT or TO_INTERNAL_FORMAT. 4. Use LISP_PATHNAME_CONVERT_OUT in many places instead of something like LISP_STRING_TO_EXTERNAL(..., Qfile_name). 5. Eliminate some temporary variables that are no longer necessary now that we return a value rather than storing it into a variable. 6. Some Mule-izing in database.c. 7. Error functions: -- A bit of code cleanup in maybe_signal_error_1. -- Eliminate report_file_type_error; it's just an alias for signal_error_2 with params in a different order. -- Fix some places in the hostname-handling code that directly inserted externally-retrieved error strings into the supposed ASCII "reason" param instead of doing the right thing and sticking text descriptive of what was going on in "reason" and putting the external message in a frob. 8. Use Ascbyte instead of CIbyte in process-unix.c and maybe one or two other places. 9. Some code cleanup in copy_in_passwd() in sysdep.c. 10. Fix a real bug due to accidental variable shadowing in tstr_to_local_file_format() in win32.c.
author Ben Wing <ben@xemacs.org>
date Fri, 05 Feb 2010 11:02:24 -0600
parents 5460287a3327
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
1 /* Checkbox Widget for XEmacs.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
2 Copyright (C) 1999 Edward A. Falk
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
3
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
4 This file is part of XEmacs.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
5
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
9 later version.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
10
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
14 for more details.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
15
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
20
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
21 /* Synched up with: Checkbox.c 1.1 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
22
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
23 /*
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
24 * Checkbox.c - Checkbox button widget
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
25 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
26 * Author: Edward A. Falk
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
27 * falk@falconer.vip.best.com
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
28 *
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
29 * Date: June 30, 1997
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
30 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
31 * Overview: This widget is identical to the Radio widget in behavior,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
32 * except that the button is square and has a check mark.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
33 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
34
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
35
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
36 #include <config.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
37 #include <stdio.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
38
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
39 #include <X11/IntrinsicP.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
40 #include <X11/StringDefs.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
41 #include ATHENA_XawInit_h_
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
42 #include "xt-wrappers.h"
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
43 #include "xlwcheckboxP.h"
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
44
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
45
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
46 /* by using the same size for the checkbox as for the diamond box,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
47 * we can let the Radio widget do the vast majority of the work.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
48 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
49
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
50 #define BOX_SIZE 8
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
51 #define DRAW_CHECK 0 /* don't draw the check mark */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
52
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
53 #define cclass(w) ((CheckboxWidgetClass)((w)->core.widget_class))
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
54
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
55 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
56 #define swid(cw) ((cw)->threeD.shadow_width)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
57 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
58 #define swid(cw) ((cw)->core.border_width)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
59 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
60
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
61 #define bsize(cw) (cclass(cw)->radio_class.dsize)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
62 #define bs(cw) (bsize(cw) + 2*swid(cw))
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
63
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
64
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
65 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
66 #define check_width 14
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
67 #define check_height 14
458
c33ae14dd6d0 Import from CVS: tag r21-2-44
cvs
parents: 442
diff changeset
68 static unsigned char check_bits[] = {
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
69 0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x03,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
70 0x8c, 0x03, 0xde, 0x01, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
71 0x70, 0x00, 0x20, 0x00};
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
72 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
73
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
74
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
75 /****************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
76 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
77 * Full class record constant
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
78 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
79 ****************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
80
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
81
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
82 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
83 static char defaultTranslations[] =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
84 "<EnterWindow>: highlight()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
85 <LeaveWindow>: unpress(draw) unhighlight()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
86 <Btn1Down>: press()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
87 <Btn1Down>,<Btn1Up>: unpress(nodraw) toggle() notify()";
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
88 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
89
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
90
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
91
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
92 #define offset(field) XtOffsetOf(CheckboxRec, checkbox.field)
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
93 #define res(name,_class,intrepr,type,member,extrepr,value) \
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
94 Xt_RESOURCE (name, _class, intrepr, type, offset(member), extrepr, value)
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
95 static XtResource resources[] = {
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
96 res (XtNtristate, XtCTristate, XtRBoolean, Boolean, tristate,
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
97 XtRImmediate, FALSE),
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
98 } ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
99 #undef offset
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
100
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
101 /* Member functions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
102
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
103 static void CheckboxClassInit (void);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
104 static void CheckboxInit (Widget, Widget, ArgList, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
105 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
106 static void CheckboxRealize (Widget, Mask *, XSetWindowAttributes *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
107 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
108 static void DrawCheck (Widget);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
109
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
110
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
111 /* Action procs */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
112 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
113 static void CheckboxPress (Widget, XEvent *, String *, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
114 static void CheckboxUnpress (Widget, XEvent *, String *, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
115 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
116
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
117 /* internal privates */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
118
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
119 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
120 static XtActionsRec actionsList[] =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
121 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
122 {"press", CheckboxPress},
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
123 {"unpress", CheckboxUnpress},
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
124 } ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
125 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
126
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
127 #define SuperClass ((RadioWidgetClass)&radioClassRec)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
128
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
129 CheckboxClassRec checkboxClassRec = {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
130 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
131 (WidgetClass) SuperClass, /* superclass */
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
132 (String) "Checkbox", /* class_name */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
133 sizeof(CheckboxRec), /* size */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
134 CheckboxClassInit, /* class_initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
135 NULL, /* class_part_initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
136 FALSE, /* class_inited */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
137 CheckboxInit, /* initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
138 NULL, /* initialize_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
139 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
140 CheckboxRealize, /* realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
141 actionsList, /* actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
142 XtNumber(actionsList), /* num_actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
143 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
144 XtInheritRealize, /* realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
145 NULL, /* actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
146 0, /* num_actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
147 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
148 resources, /* resources */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
149 XtNumber(resources), /* resource_count */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
150 NULLQUARK, /* xrm_class */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
151 TRUE, /* compress_motion */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
152 TRUE, /* compress_exposure */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
153 TRUE, /* compress_enterleave */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
154 FALSE, /* visible_interest */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
155 NULL, /* destroy */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
156 XtInheritResize, /* resize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
157 XtInheritExpose, /* expose */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
158 NULL, /* set_values */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
159 NULL, /* set_values_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
160 XtInheritSetValuesAlmost, /* set_values_almost */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
161 NULL, /* get_values_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
162 NULL, /* accept_focus */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
163 XtVersion, /* version */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
164 NULL, /* callback_private */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
165 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
166 defaultTranslations, /* tm_table */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
167 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
168 XtInheritTranslations, /* tm_table */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
169 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
170 XtInheritQueryGeometry, /* query_geometry */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
171 XtInheritDisplayAccelerator, /* display_accelerator */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
172 NULL /* extension */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
173 }, /* CoreClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
174 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
175 XtInheritChangeSensitive /* change_sensitive */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
176 }, /* SimpleClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
177 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
178 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
179 XtInheritXaw3dShadowDraw /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
180 }, /* ThreeDClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
181 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
182 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
183 0 /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
184 }, /* LabelClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
185 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
186 0 /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
187 }, /* CommandClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
188 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
189 RadioSet, /* Set Procedure. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
190 RadioUnset, /* Unset Procedure. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
191 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
192 }, /* ToggleClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
193 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
194 BOX_SIZE,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
195 DrawCheck, /* draw procedure */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
196 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
197 }, /* RadioClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
198 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
199 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
200 }, /* CheckboxClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
201 };
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
202
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
203 /* for public consumption */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
204 WidgetClass checkboxWidgetClass = (WidgetClass) &checkboxClassRec;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
205
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
206
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
207
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
208
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
209
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
210
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
211 /****************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
212 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
213 * Class Methods
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
214 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
215 ****************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
216
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
217 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
218 CheckboxClassInit (void)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
219 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
220 XawInitializeWidgetSet();
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
221 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
222
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
223
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
224 /*ARGSUSED*/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
225 static void
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
226 CheckboxInit (Widget UNUSED (request),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
227 #if DRAW_CHECK
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
228 Widget new,
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
229 #else
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
230 Widget UNUSED (new_),
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
231 #endif
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
232 ArgList UNUSED (args),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
233 Cardinal *UNUSED (num_args))
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
234 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
235 #if DRAW_CHECK
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
236 CheckboxWidget cw = (CheckboxWidget) new_;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
237 cw->checkbox.checkmark = None ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
238 cw->checkbox.checkmark_GC = None ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
239 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
240 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
241
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
242
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
243 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
244 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
245 CheckboxRealize(Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
246 Mask *valueMask,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
247 XSetWindowAttributes *attributes)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
248 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
249 CheckboxWidget cw = (CheckboxWidget) w;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
250 XtGCMask value_mask, dynamic_mask, dontcare_mask ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
251 XGCValues values ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
252
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
253 /* first, call superclass realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
254 (*checkboxWidgetClass->core_class.superclass->core_class.realize)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
255 (w, valueMask, attributes);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
256
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
257 /* TODO: cache this via xmu */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
258 if( cw->checkbox.checkmark == None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
259 cw->checkbox.checkmark =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
260 XCreateBitmapFromData( XtDisplay(w), XtWindow(w),
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
261 check_bits,check_width,check_height);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
262
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
263 values.fill_style = FillStippled ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
264 values.stipple = cw->checkbox.checkmark ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
265 values.foreground = cw->label.foreground ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
266 value_mask = GCFillStyle | GCStipple | GCForeground ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
267 dynamic_mask = GCTileStipXOrigin | GCTileStipYOrigin ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
268 dontcare_mask = GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle |
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
269 GCFont | GCSubwindowMode | GCGraphicsExposures |
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
270 GCDashOffset | GCDashList | GCArcMode ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
271 cw->checkbox.checkmark_GC =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
272 XtAllocateGC(w, 0, value_mask, &values, dynamic_mask, dontcare_mask) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
273 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
274 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
275
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
276
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
277 /* Function Name: CheckboxDestroy
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
278 * Description: Destroy Callback for checkbox widget.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
279 * Arguments: w - the checkbox widget that is being destroyed.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
280 * junk, garbage - not used.
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
281 * Returns: none.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
282 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
283
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
284 /* ARGSUSED */
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
285 #if DRAW_CHECK
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
286 static void
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
287 CheckboxDestroy (
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
288 Widget w,
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
289 XtPointer UNUSED (junk),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
290 XtPointer UNUSED (garbage))
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
291 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
292 CheckboxWidget cw = (CheckboxWidget) w;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
293
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
294 /* TODO: cache this via xmu */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
295 if( cw->checkbox.checkmark != None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
296 XFreePixmap( XtDisplay(w), cw->checkbox.checkmark ) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
297 if( cw->checkbox.checkmark_GC != None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
298 XtReleaseGC(w, cw->checkbox.checkmark_GC) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
299 }
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
300 #endif /* DRAW_CHECK */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
301
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
302
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
303
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
304 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
305 /************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
306 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
307 * Actions Procedures
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
308 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
309 ************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
310
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
311 /* ARGSUSED */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
312 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
313 CheckboxPress (Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
314 XEvent *event,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
315 String *params, /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
316 Cardinal *num_params) /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
317 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
318 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
319 if( !cw->checkbox.pressed ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
320 cw->checkbox.pressed = TRUE ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
321 ((CheckboxWidgetClass)(w->core.widget_class))->radio_class.drawDiamond(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
322 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
323 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
324
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
325 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
326 CheckboxUnpress (Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
327 XEvent *event,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
328 String *params, /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
329 Cardinal *num_params) /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
330 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
331 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
332 int i ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
333
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
334 if( cw->checkbox.pressed ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
335 cw->checkbox.pressed = FALSE ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
336 if( *num_params > 0 && **params == 'd' )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
337 ((CheckboxWidgetClass)(w->core.widget_class))->radio_class.drawDiamond(w);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
338 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
339 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
340 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
341
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
342
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
343
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
344
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
345
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
346 /************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
347 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
348 * Internal Procedures
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
349 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
350 ************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
351
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
352 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
353 DrawCheck (Widget w)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
354 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
355 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
356 Display *dpy = XtDisplay(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
357 Window win = XtWindow(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
358 GC gc ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
359
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
360 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
361 XPoint pts[6] ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
362 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
363 Dimension s = swid(cw);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
364 Dimension bsz = bsize(cw);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
365 Position bx,by ; /* Check upper-left */
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
366 Dimension bh ;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
367 #ifdef _ThreeDP_h
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
368 Dimension bw;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
369 GC top, bot;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
370 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
371 GC ctr ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
372
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
373 /* foreground GC */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
374 gc = XtIsSensitive(w) ? cw->command.normal_GC : cw->label.gray_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
375
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
376 bh = bs(cw) ;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
377 bx = cw->label.internal_width ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
378 by = cw->core.height/2 - bh/2 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
379
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
380 #ifdef _ThreeDP_h
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
381 bw = bh ;
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
382
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
383 if( !cw->command.set ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
384 top = cw->threeD.top_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
385 bot = cw->threeD.bot_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
386 } else {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
387 top = cw->threeD.bot_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
388 bot = cw->threeD.top_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
389 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
390 ctr = cw->command.inverse_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
391 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
392 ctr = cw->command.set ? cw->command.normal_GC : cw->command.inverse_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
393 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
394
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
395 XFillRectangle(dpy,win,ctr, bx+s,by+s, bsz,bsz) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
396
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
397 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
398 /* top-left shadow */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
399 pts[0].x = bx ; pts[0].y = by ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
400 pts[1].x = bw ; pts[1].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
401 pts[2].x = -s ; pts[2].y = s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
402 pts[3].x = -bsz ; pts[3].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
403 pts[4].x = 0 ; pts[4].y = bsz ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
404 pts[5].x = -s ; pts[5].y = s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
405 XFillPolygon(dpy,win,top, pts,6, Nonconvex,CoordModePrevious) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
406 /* bottom-right shadow */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
407 pts[0].x = bx+bw ; pts[0].y = by+bh ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
408 pts[1].x = -bw ; pts[1].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
409 pts[2].x = s ; pts[2].y = -s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
410 pts[3].x = bsz ; pts[3].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
411 pts[4].x = 0 ; pts[4].y = -bsz ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
412 pts[5].x = s ; pts[5].y = -s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
413 XFillPolygon(dpy,win,bot, pts,6, Nonconvex,CoordModePrevious) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
414 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
415 XDrawRectangle(dpy,win,gc, bx+s,by+s, bsz,bsz) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
416 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
417
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
418 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
419 if( cw->command.set && cw->checkbox.checkmark_GC != None ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
420 XSetTSOrigin(dpy,cw->checkbox.checkmark_GC, bx+s, by+s) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
421 XFillRectangle(dpy,win,cw->checkbox.checkmark_GC,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
422 bx+s, by+s, check_width,check_height) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
423 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
424 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
425 }