0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.2383: using old C style comments

Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
This commit is contained in:
Bram Moolenaar
2019-12-02 22:49:38 +01:00
parent a050b9471c
commit 734a867ffe
8 changed files with 1922 additions and 1936 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@
#include "vim.h" #include "vim.h"
/* cproto fails on missing include files */ // cproto fails on missing include files
#ifndef PROTO #ifndef PROTO
# ifdef FEAT_TOOLBAR # ifdef FEAT_TOOLBAR
# include <photon/PxImage.h> # include <photon/PxImage.h>
@@ -21,7 +21,7 @@
#endif #endif
#if !defined(__QNX__) #if !defined(__QNX__)
/* Used when generating prototypes. */ // Used when generating prototypes.
# define PgColor_t int # define PgColor_t int
# define PhEvent_t int # define PhEvent_t int
# define PhPoint_t int # define PhPoint_t int
@@ -39,11 +39,11 @@
#define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000 #define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000
/* Some defines for gui_mch_mousehide() */ // Some defines for gui_mch_mousehide()
#define MOUSE_HIDE TRUE #define MOUSE_HIDE TRUE
#define MOUSE_SHOW FALSE #define MOUSE_SHOW FALSE
/* Optional support for using a PtPanelGroup widget, needs work */ // Optional support for using a PtPanelGroup widget, needs work
#undef USE_PANEL_GROUP #undef USE_PANEL_GROUP
#ifdef USE_PANEL_GROUP #ifdef USE_PANEL_GROUP
@@ -53,15 +53,15 @@ static ushort_t num_panels = 0;
static short pg_margin_left, pg_margin_right, pg_margin_top, pg_margin_bottom; static short pg_margin_left, pg_margin_right, pg_margin_top, pg_margin_bottom;
#endif #endif
#define GUI_PH_MARGIN 4 /* Size of the bevel */ #define GUI_PH_MARGIN 4 // Size of the bevel
#define GUI_PH_MOUSE_TYPE Ph_CURSOR_INSERT #define GUI_PH_MOUSE_TYPE Ph_CURSOR_INSERT
static PgColor_t gui_ph_mouse_color = Pg_BLACK; static PgColor_t gui_ph_mouse_color = Pg_BLACK;
static PhPoint_t gui_ph_raw_offset; static PhPoint_t gui_ph_raw_offset;
static PtWidget_t *gui_ph_timer_cursor; /* handle cursor blinking */ static PtWidget_t *gui_ph_timer_cursor; // handle cursor blinking
static PtWidget_t *gui_ph_timer_timeout; /* used in gui_mch_wait_for_chars */ static PtWidget_t *gui_ph_timer_timeout; // used in gui_mch_wait_for_chars
static short is_timeout; /* Has the timeout occurred? */ static short is_timeout; // Has the timeout occurred?
/* /*
* This is set inside the mouse callback for a right mouse * This is set inside the mouse callback for a right mouse
@@ -69,10 +69,10 @@ static short is_timeout; /* Has the timeout occurred? */
*/ */
static PhPoint_t abs_mouse; static PhPoint_t abs_mouse;
/* Try and avoid redraws while a resize is in progress */ // Try and avoid redraws while a resize is in progress
static int is_ignore_draw = FALSE; static int is_ignore_draw = FALSE;
/* Used for converting to/from utf-8 and other charsets */ // Used for converting to/from utf-8 and other charsets
static struct PxTransCtrl *charset_translate; static struct PxTransCtrl *charset_translate;
/* /*
@@ -160,23 +160,23 @@ static struct
{Pk_KP_Multiply,'K', '9'}, {Pk_KP_Multiply,'K', '9'},
{Pk_KP_Enter, 'K', 'A'}, {Pk_KP_Enter, 'K', 'A'},
{Pk_KP_0, KS_EXTRA, KE_KINS}, /* Insert */ {Pk_KP_0, KS_EXTRA, KE_KINS}, // Insert
{Pk_KP_Decimal, KS_EXTRA, KE_KDEL}, /* Delete */ {Pk_KP_Decimal, KS_EXTRA, KE_KDEL}, // Delete
{Pk_KP_4, 'k', 'l'}, /* Left */ {Pk_KP_4, 'k', 'l'}, // Left
{Pk_KP_6, 'k', 'r'}, /* Right */ {Pk_KP_6, 'k', 'r'}, // Right
{Pk_KP_8, 'k', 'u'}, /* Up */ {Pk_KP_8, 'k', 'u'}, // Up
{Pk_KP_2, 'k', 'd'}, /* Down */ {Pk_KP_2, 'k', 'd'}, // Down
{Pk_KP_7, 'K', '1'}, /* Home */ {Pk_KP_7, 'K', '1'}, // Home
{Pk_KP_1, 'K', '4'}, /* End */ {Pk_KP_1, 'K', '4'}, // End
{Pk_KP_9, 'K', '3'}, /* Page Up */ {Pk_KP_9, 'K', '3'}, // Page Up
{Pk_KP_3, 'K', '5'}, /* Page Down */ {Pk_KP_3, 'K', '5'}, // Page Down
{Pk_KP_5, '&', '8'}, /* Undo */ {Pk_KP_5, '&', '8'}, // Undo
/* Keys that we want to be able to use any modifier with: */ // Keys that we want to be able to use any modifier with:
{Pk_Return, CAR, NUL}, {Pk_Return, CAR, NUL},
{Pk_space, ' ', NUL}, {Pk_space, ' ', NUL},
{Pk_Tab, TAB, NUL}, {Pk_Tab, TAB, NUL},
@@ -184,12 +184,12 @@ static struct
{NL, NL, NUL}, {NL, NL, NUL},
{CAR, CAR, NUL}, {CAR, CAR, NUL},
/* End of list marker: */ // End of list marker:
{0, 0, 0} {0, 0, 0}
}; };
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
static PtCallbackF_t gui_ph_handle_timer_cursor; static PtCallbackF_t gui_ph_handle_timer_cursor;
static PtCallbackF_t gui_ph_handle_timer_timeout; static PtCallbackF_t gui_ph_handle_timer_timeout;
@@ -201,11 +201,11 @@ static PtCallbackF_t gui_ph_handle_keyboard;
static PtCallbackF_t gui_ph_handle_mouse; static PtCallbackF_t gui_ph_handle_mouse;
static PtCallbackF_t gui_ph_handle_pulldown_menu; static PtCallbackF_t gui_ph_handle_pulldown_menu;
static PtCallbackF_t gui_ph_handle_menu; static PtCallbackF_t gui_ph_handle_menu;
static PtCallbackF_t gui_ph_handle_focus; /* focus change of text area */ static PtCallbackF_t gui_ph_handle_focus; // focus change of text area
static PtCallbackF_t gui_ph_handle_menu_resize; static PtCallbackF_t gui_ph_handle_menu_resize;
/* When a menu is unrealized, give focus back to vimTextArea */ // When a menu is unrealized, give focus back to vimTextArea
static PtCallbackF_t gui_ph_handle_menu_unrealized; static PtCallbackF_t gui_ph_handle_menu_unrealized;
#ifdef USE_PANEL_GROUP #ifdef USE_PANEL_GROUP
@@ -215,7 +215,7 @@ static void gui_ph_get_panelgroup_margins(short*, short*, short*, short*);
static void gui_ph_draw_start(void); static void gui_ph_draw_start(void);
static void gui_ph_draw_end(void); static void gui_ph_draw_end(void);
/* Set the text for the balloon */ // Set the text for the balloon
static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window, static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
PtWidget_t *widget, PtWidget_t *widget,
int position, int position,
@@ -224,7 +224,7 @@ static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
PgColor_t fill_color, PgColor_t fill_color,
PgColor_t text_color); PgColor_t text_color);
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window, static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
PtWidget_t *widget, PtWidget_t *widget,
@@ -241,7 +241,7 @@ static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0); PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0);
PtGetResources(widget, 1, &arg); PtGetResources(widget, 1, &arg);
/* Override the text and position */ // Override the text and position
tooltip = text; tooltip = text;
if (menu != NULL) if (menu != NULL)
@@ -254,8 +254,8 @@ static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
return PtInflateBalloon( return PtInflateBalloon(
window, window,
widget, widget,
/* Don't put the balloon at the bottom, // Don't put the balloon at the bottom,
* it gets drawn over by gfx done in the PtRaw */ // it gets drawn over by gfx done in the PtRaw
Pt_BALLOON_TOP, Pt_BALLOON_TOP,
tooltip, tooltip,
font, font,
@@ -287,9 +287,9 @@ gui_ph_handle_menu_resize(
height = sizes->new_dim.h; height = sizes->new_dim.h;
/* Because vim treats the toolbar and menubar separately, // Because vim treats the toolbar and menubar separately,
* and here they're lumped together into a PtToolbarGroup, // and here they're lumped together into a PtToolbarGroup,
* we only need either menu_height or toolbar_height set at once */ // we only need either menu_height or toolbar_height set at once
if (gui.menu_is_active) if (gui.menu_is_active)
{ {
gui.menu_height = height; gui.menu_height = height;
@@ -368,7 +368,7 @@ gui_ph_handle_window_cb(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
break; break;
case Ph_WM_FOCUS: case Ph_WM_FOCUS:
/* Just in case it's hidden and needs to be shown */ // Just in case it's hidden and needs to be shown
gui_mch_mousehide(MOUSE_SHOW); gui_mch_mousehide(MOUSE_SHOW);
if (we->event_state == Ph_WM_EVSTATE_FOCUS) if (we->event_state == Ph_WM_EVSTATE_FOCUS)
@@ -424,7 +424,7 @@ gui_ph_handle_scrollbar(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
break; break;
case Pt_SCROLL_SET: case Pt_SCROLL_SET:
/* FIXME: return straight away here? */ // FIXME: return straight away here?
return Pt_CONTINUE; return Pt_CONTINUE;
break; break;
} }
@@ -449,7 +449,7 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
if (p_mh) if (p_mh)
gui_mch_mousehide(MOUSE_HIDE); gui_mch_mousehide(MOUSE_HIDE);
/* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */ // We're a good lil photon program, aren't we? yes we are, yeess wee arrr
if (key->key_flags & Pk_KF_Compose) if (key->key_flags & Pk_KF_Compose)
return Pt_CONTINUE; return Pt_CONTINUE;
@@ -469,7 +469,7 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
(*p_wak == 'm' && (*p_wak == 'm' &&
gui_is_menu_shortcut(key->key_cap)))) gui_is_menu_shortcut(key->key_cap))))
{ {
/* Fallthrough and let photon look for the hotkey */ // Fallthrough and let photon look for the hotkey
return Pt_CONTINUE; return Pt_CONTINUE;
} }
#endif #endif
@@ -483,13 +483,13 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
ch = special_keys[i].vim_code0; ch = special_keys[i].vim_code0;
else else
{ {
/* Detect if a keypad number key has been pressed // Detect if a keypad number key has been pressed
* and change the key if Num Lock is on */ // and change the key if Num Lock is on
if (key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9 if (key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
&& (key->key_mods & Pk_KM_Num_Lock)) && (key->key_mods & Pk_KM_Num_Lock))
{ {
/* FIXME: For now, just map the key to a ascii value // FIXME: For now, just map the key to a ascii value
* (see <photon/PkKeyDef.h>) */ // (see <photon/PkKeyDef.h>)
ch = key->key_cap - 0xf080; ch = key->key_cap - 0xf080;
} }
else else
@@ -507,7 +507,7 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
if (key->key_mods & Pk_KM_Shift) if (key->key_mods & Pk_KM_Shift)
modifiers |= MOD_MASK_SHIFT; modifiers |= MOD_MASK_SHIFT;
/* Is this not a special key? */ // Is this not a special key?
if (special_keys[i].key_sym == 0) if (special_keys[i].key_sym == 0)
{ {
ch = PhTo8859_1(key); ch = PhTo8859_1(key);
@@ -542,7 +542,7 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
ch = key->key_cap; ch = key->key_cap;
if (ch < 0xff) if (ch < 0xff)
{ {
/* FIXME: is this the right thing to do? */ // FIXME: is this the right thing to do?
if (modifiers & MOD_MASK_CTRL) if (modifiers & MOD_MASK_CTRL)
{ {
modifiers &= ~MOD_MASK_CTRL; modifiers &= ~MOD_MASK_CTRL;
@@ -605,7 +605,7 @@ gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
if (len == 1 && string[0] == CSI) if (len == 1 && string[0] == CSI)
{ {
/* Turn CSI into K_CSI. */ // Turn CSI into K_CSI.
string[ len++ ] = KS_EXTRA; string[ len++ ] = KS_EXTRA;
string[ len++ ] = KE_CSI; string[ len++ ] = KE_CSI;
} }
@@ -663,7 +663,7 @@ gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
if (pointer->buttons & Ph_BUTTON_MENU) if (pointer->buttons & Ph_BUTTON_MENU)
{ {
button = MOUSE_RIGHT; button = MOUSE_RIGHT;
/* Need the absolute coordinates for the popup menu */ // Need the absolute coordinates for the popup menu
abs_mouse.x = pointer->pos.x; abs_mouse.x = pointer->pos.x;
abs_mouse.y = pointer->pos.y; abs_mouse.y = pointer->pos.y;
} }
@@ -671,7 +671,7 @@ gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
if (pointer->buttons & Ph_BUTTON_ADJUST) if (pointer->buttons & Ph_BUTTON_ADJUST)
button = MOUSE_MIDDLE; button = MOUSE_MIDDLE;
/* Catch a real release (not phantom or other releases */ // Catch a real release (not phantom or other releases
if (info->event->type == Ph_EV_BUT_RELEASE) if (info->event->type == Ph_EV_BUT_RELEASE)
button = MOUSE_RELEASE; button = MOUSE_RELEASE;
@@ -679,12 +679,12 @@ gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
button = MOUSE_DRAG; button = MOUSE_DRAG;
#if 0 #if 0
/* Vim doesn't use button repeats */ // Vim doesn't use button repeats
if (info->event->type & Ph_EV_BUT_REPEAT) if (info->event->type & Ph_EV_BUT_REPEAT)
button = MOUSE_DRAG; button = MOUSE_DRAG;
#endif #endif
/* Don't do anything if it is one of the phantom mouse release events */ // Don't do anything if it is one of the phantom mouse release events
if ((button != MOUSE_RELEASE) || if ((button != MOUSE_RELEASE) ||
(info->event->subtype == Ph_EV_RELEASE_REAL)) (info->event->subtype == Ph_EV_RELEASE_REAL))
{ {
@@ -696,7 +696,9 @@ gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
return Pt_CONTINUE; return Pt_CONTINUE;
} }
/* Handle a focus change of the PtRaw widget */ /*
* Handle a focus change of the PtRaw widget
*/
static int static int
gui_ph_handle_focus(PtWidget_t *widget, void *data, PtCallbackInfo_t *info) gui_ph_handle_focus(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
{ {
@@ -745,7 +747,7 @@ gui_ph_handle_raw_draw(PtWidget_t *widget, PhTile_t *damage)
PhTranslatePoint(&offset, PtWidgetPos(gui.vimTextArea, NULL)); PhTranslatePoint(&offset, PtWidgetPos(gui.vimTextArea, NULL));
#if 1 #if 1
/* Redraw individual damage regions */ // Redraw individual damage regions
if (damage->next != NULL) if (damage->next != NULL)
damage = damage->next; damage = damage->next;
@@ -759,7 +761,7 @@ gui_ph_handle_raw_draw(PtWidget_t *widget, PhTile_t *damage)
damage = damage->next; damage = damage->next;
} }
#else #else
/* Redraw the rectangle that covers all the damaged regions */ // Redraw the rectangle that covers all the damaged regions
r = &damage->rect; r = &damage->rect;
gui_redraw( gui_redraw(
r->ul.x - offset.x, r->ul.y - offset.y, r->ul.x - offset.x, r->ul.y - offset.y,
@@ -787,7 +789,9 @@ gui_ph_handle_pulldown_menu(
return Pt_CONTINUE; return Pt_CONTINUE;
} }
/* This is used for pulldown/popup menus and also toolbar buttons */ /*
* This is used for pulldown/popup menus and also toolbar buttons
*/
static int static int
gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info) gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
{ {
@@ -799,7 +803,9 @@ gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
return Pt_CONTINUE; return Pt_CONTINUE;
} }
/* Stop focus from disappearing into the menubar... */ /*
* Stop focus from disappearing into the menubar...
*/
static int static int
gui_ph_handle_menu_unrealized( gui_ph_handle_menu_unrealized(
PtWidget_t *widget, PtWidget_t *widget,
@@ -820,12 +826,14 @@ gui_ph_handle_window_open(
return Pt_CONTINUE; return Pt_CONTINUE;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
#define DRAW_START gui_ph_draw_start() #define DRAW_START gui_ph_draw_start()
#define DRAW_END gui_ph_draw_end() #define DRAW_END gui_ph_draw_end()
/* TODO: Set a clipping rect? */ /*
* TODO: Set a clipping rect?
*/
static void static void
gui_ph_draw_start(void) gui_ph_draw_start(void)
{ {
@@ -888,8 +896,8 @@ gui_ph_pg_set_buffer_num(int_u buf_num)
for (i = 0; i < num_panels; i++) for (i = 0; i < num_panels; i++)
{ {
/* find the last "(" in the panel title and see if the buffer // find the last "(" in the panel title and see if the buffer
* number in the title matches the one we're looking for */ // number in the title matches the one we're looking for
mark = STRRCHR(panel_titles[ i ], '('); mark = STRRCHR(panel_titles[ i ], '(');
if (mark != NULL && STRCMP(mark, search) == 0) if (mark != NULL && STRCMP(mark, search) == 0)
{ {
@@ -948,7 +956,9 @@ gui_ph_get_panelgroup_margins(
*right = *margin_right; *right = *margin_right;
} }
/* Used for the tabs for PtPanelGroup */ /*
* Used for the tabs for PtPanelGroup
*/
static int static int
gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent) gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent)
{ {
@@ -956,7 +966,7 @@ gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent)
if (STRCMP(parent->dname, "Buffers") == 0) if (STRCMP(parent->dname, "Buffers") == 0)
{ {
/* Look for '(' digits ')' */ // Look for '(' digits ')'
mark = vim_strchr(menu->dname, '('); mark = vim_strchr(menu->dname, '(');
if (mark != NULL) if (mark != NULL)
{ {
@@ -998,14 +1008,14 @@ gui_ph_pg_remove_buffer(char *name)
int i; int i;
char **new_titles = NULL; char **new_titles = NULL;
/* If there is only 1 panel, we just use the temporary place holder */ // If there is only 1 panel, we just use the temporary place holder
if (num_panels > 1) if (num_panels > 1)
{ {
new_titles = ALLOC_MULT(char *, num_panels - 1); new_titles = ALLOC_MULT(char *, num_panels - 1);
if (new_titles != NULL) if (new_titles != NULL)
{ {
char **s = new_titles; char **s = new_titles;
/* Copy all the titles except the one we're removing */ // Copy all the titles except the one we're removing
for (i = 0; i < num_panels; i++) for (i = 0; i < num_panels; i++)
{ {
if (STRCMP(panel_titles[ i ], name) != 0) if (STRCMP(panel_titles[ i ], name) != 0)
@@ -1030,7 +1040,9 @@ gui_ph_pg_remove_buffer(char *name)
} }
} }
/* When a buffer item is deleted from the buffer menu */ /*
* When a buffer item is deleted from the buffer menu
*/
static int static int
gui_ph_handle_buffer_remove( gui_ph_handle_buffer_remove(
PtWidget_t *widget, PtWidget_t *widget,
@@ -1062,12 +1074,12 @@ gui_ph_pane_resize(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
return Pt_CONTINUE; return Pt_CONTINUE;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
void void
gui_ph_encoding_changed(int new_encoding) gui_ph_encoding_changed(int new_encoding)
{ {
/* Default encoding is latin1 */ // Default encoding is latin1
char *charset = "latin1"; char *charset = "latin1";
int i; int i;
@@ -1090,8 +1102,7 @@ gui_ph_encoding_changed(int new_encoding)
charset_translate = PxTranslateSet(charset_translate, charset); charset_translate = PxTranslateSet(charset_translate, charset);
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/****************************************************************************/
void void
gui_mch_prepare(int *argc, char **argv) gui_mch_prepare(int *argc, char **argv)
@@ -1105,20 +1116,20 @@ gui_mch_init(void)
PtArg_t args[10]; PtArg_t args[10];
int flags = 0, n = 0; int flags = 0, n = 0;
PhDim_t window_size = {100, 100}; /* Arbitrary values */ PhDim_t window_size = {100, 100}; // Arbitrary values
PhPoint_t pos = {0, 0}; PhPoint_t pos = {0, 0};
gui.event_buffer = alloc(EVENT_BUFFER_SIZE); gui.event_buffer = alloc(EVENT_BUFFER_SIZE);
if (gui.event_buffer == NULL) if (gui.event_buffer == NULL)
return FAIL; return FAIL;
/* Get a translation so we can convert from ISO Latin-1 to UTF */ // Get a translation so we can convert from ISO Latin-1 to UTF
charset_translate = PxTranslateSet(NULL, "latin1"); charset_translate = PxTranslateSet(NULL, "latin1");
/* The +2 is for the 1 pixel dark line on each side */ // The +2 is for the 1 pixel dark line on each side
gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2; gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
/* Handle close events ourselves */ // Handle close events ourselves
PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE); PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE);
PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE, PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS); Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS);
@@ -1137,7 +1148,7 @@ gui_mch_init(void)
PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0); PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0);
#ifdef USE_PANEL_GROUP #ifdef USE_PANEL_GROUP
/* Put in a temporary place holder title */ // Put in a temporary place holder title
PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1); PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1);
gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args); gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args);
@@ -1147,7 +1158,7 @@ gui_mch_init(void)
PtAddCallback(gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING, PtAddCallback(gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
gui_ph_handle_pg_change, NULL); gui_ph_handle_pg_change, NULL);
#else #else
/* Turn off all edge decorations */ // Turn off all edge decorations
PtSetArg(&args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL); PtSetArg(&args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL);
PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0); PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0);
PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0); PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0);
@@ -1161,7 +1172,7 @@ gui_mch_init(void)
PtAddCallback(gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL); PtAddCallback(gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL);
#endif #endif
/* Size for the text area is set in gui_mch_set_text_area_pos */ // Size for the text area is set in gui_mch_set_text_area_pos
n = 0; n = 0;
PtSetArg(&args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1); PtSetArg(&args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1);
@@ -1181,8 +1192,8 @@ gui_mch_init(void)
if (gui.vimTextArea == NULL) if (gui.vimTextArea == NULL)
return FAIL; return FAIL;
/* TODO: use PtAddEventHandlers instead? */ // TODO: use PtAddEventHandlers instead?
/* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */ // Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway
PtAddEventHandler(gui.vimTextArea, PtAddEventHandler(gui.vimTextArea,
Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON, Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
gui_ph_handle_mouse, NULL); gui_ph_handle_mouse, NULL);
@@ -1311,11 +1322,13 @@ gui_mch_exit(int rc)
#endif #endif
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* events */ // events
/* When no events are available, photon will call this function, working is /*
* set to FALSE, and the gui_mch_update loop will exit. */ * When no events are available, photon will call this function, working is
* set to FALSE, and the gui_mch_update loop will exit.
*/
static int static int
exit_gui_mch_update(void *data) exit_gui_mch_update(void *data)
{ {
@@ -1388,12 +1401,12 @@ gui_mch_browse(
{ {
if (saving == TRUE) if (saving == TRUE)
{ {
/* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */ // Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway
flags |= Pt_FSR_NO_FCHECK; flags |= Pt_FSR_NO_FCHECK;
open_text = "&Save"; open_text = "&Save";
} }
/* combine the directory and filename into a single path */ // combine the directory and filename into a single path
if (initdir == NULL || *initdir == NUL) if (initdir == NULL || *initdir == NUL)
{ {
mch_dirname(default_path, MAXPATHL); mch_dirname(default_path, MAXPATHL);
@@ -1413,7 +1426,7 @@ gui_mch_browse(
STRCAT(default_path, default_name); STRCAT(default_path, default_name);
} }
/* TODO: add a filter? */ // TODO: add a filter?
PtFileSelection( PtFileSelection(
gui.vimWindow, gui.vimWindow,
NULL, NULL,
@@ -1496,18 +1509,18 @@ gui_mch_dialog(
int i, len; int i, len;
int dialog_result = -1; int dialog_result = -1;
/* FIXME: the vertical option in guioptions is blatantly ignored */ // FIXME: the vertical option in guioptions is blatantly ignored
/* FIXME: so is the type */ // FIXME: so is the type
button_count = len = i = 0; button_count = len = i = 0;
if (buttons == NULL || *buttons == NUL) if (buttons == NULL || *buttons == NUL)
return -1; return -1;
/* There is one less separator than buttons, so bump up the button count */ // There is one less separator than buttons, so bump up the button count
button_count = 1; button_count = 1;
/* Count string length and number of separators */ // Count string length and number of separators
for (str = buttons; *str; str++) for (str = buttons; *str; str++)
{ {
len++; len++;
@@ -1550,8 +1563,8 @@ gui_mch_dialog(
button_count, (const char **) button_array, NULL, button_count, (const char **) button_array, NULL,
default_button, 0, Pt_MODAL); default_button, 0, Pt_MODAL);
#else #else
/* Writing the dialog ourselves lets us add extra features, like // Writing the dialog ourselves lets us add extra features, like
* trapping the escape key and returning 0 to vim */ // trapping the escape key and returning 0 to vim
{ {
int n; int n;
PtArg_t args[5]; PtArg_t args[5];
@@ -1593,8 +1606,8 @@ gui_mch_dialog(
di.buttons = (const char **) button_array; di.buttons = (const char **) button_array;
di.nbtns = button_count; di.nbtns = button_count;
di.def_btn = default_button; di.def_btn = default_button;
/* This is just to give the dialog the close button. // This is just to give the dialog the close button.
* We check for the Escape key ourselves and return 0 */ // We check for the Escape key ourselves and return 0
di.esc_btn = button_count; di.esc_btn = button_count;
di.callback = gui_ph_dialog_close; di.callback = gui_ph_dialog_close;
di.data = &modal_ctrl; di.data = &modal_ctrl;
@@ -1606,7 +1619,7 @@ gui_mch_dialog(
if (gui_ph_dialog_text != NULL) if (gui_ph_dialog_text != NULL)
PtGiveFocus(gui_ph_dialog_text, NULL); PtGiveFocus(gui_ph_dialog_text, NULL);
/* Open dialog, block the vim window and wait for the dialog to close */ // Open dialog, block the vim window and wait for the dialog to close
PtRealizeWidget(dialog); PtRealizeWidget(dialog);
PtMakeModal(dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR); PtMakeModal(dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR);
dialog_result = (int) PtModalBlock(&modal_ctrl, 0); dialog_result = (int) PtModalBlock(&modal_ctrl, 0);
@@ -1623,8 +1636,8 @@ gui_mch_dialog(
return dialog_result; return dialog_result;
} }
#endif #endif
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* window size/position/state */ // window size/position/state
int int
gui_mch_get_winpos(int *x, int *y) gui_mch_get_winpos(int *x, int *y)
@@ -1719,11 +1732,11 @@ gui_mch_settitle(char_u *title, char_u *icon)
gui_ph_pg_set_buffer_num(curwin->w_buffer->b_fnum); gui_ph_pg_set_buffer_num(curwin->w_buffer->b_fnum);
#endif #endif
PtSetResource(gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0); PtSetResource(gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0);
/* Not sure what to do with the icon text, set balloon text somehow? */ // Not sure what to do with the icon text, set balloon text somehow?
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Scrollbar */ // Scrollbar
void void
gui_mch_set_scrollbar_thumb(scrollbar_T *sb, int val, int size, int max) gui_mch_set_scrollbar_thumb(scrollbar_T *sb, int val, int size, int max)
@@ -1749,7 +1762,7 @@ gui_mch_set_scrollbar_pos(scrollbar_T *sb, int x, int y, int w, int h)
gui_mch_create_scrollbar(scrollbar_T *sb, int orient) gui_mch_create_scrollbar(scrollbar_T *sb, int orient)
{ {
int n = 0; int n = 0;
/* int anchor_flags = 0;*/ // int anchor_flags = 0;
PtArg_t args[4]; PtArg_t args[4];
/* /*
@@ -1762,7 +1775,7 @@ gui_mch_create_scrollbar(scrollbar_T *sb, int orient)
Pt_DELAY_REALIZE | Pt_GETS_FOCUS); Pt_DELAY_REALIZE | Pt_GETS_FOCUS);
PtSetArg(&args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0); PtSetArg(&args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
#if 0 #if 0
/* Don't need this anchoring for the scrollbars */ // Don't need this anchoring for the scrollbars
if (orient == SBAR_HORIZ) if (orient == SBAR_HORIZ)
{ {
anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
@@ -1808,35 +1821,35 @@ gui_mch_destroy_scrollbar(scrollbar_T *sb)
sb->id = NULL; sb->id = NULL;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Mouse functions */ // Mouse functions
#if defined(FEAT_MOUSESHAPE) || defined(PROTO) #if defined(FEAT_MOUSESHAPE) || defined(PROTO)
/* The last set mouse pointer shape is remembered, to be used when it goes // The last set mouse pointer shape is remembered, to be used when it goes
* from hidden to not hidden. */ // from hidden to not hidden.
static int last_shape = 0; static int last_shape = 0;
/* Table for shape IDs. Keep in sync with the mshape_names[] table in // Table for shape IDs. Keep in sync with the mshape_names[] table in
* misc2.c! */ // misc2.c!
static int mshape_ids[] = static int mshape_ids[] =
{ {
Ph_CURSOR_POINTER, /* arrow */ Ph_CURSOR_POINTER, // arrow
Ph_CURSOR_NONE, /* blank */ Ph_CURSOR_NONE, // blank
Ph_CURSOR_INSERT, /* beam */ Ph_CURSOR_INSERT, // beam
Ph_CURSOR_DRAG_VERTICAL, /* updown */ Ph_CURSOR_DRAG_VERTICAL, // updown
Ph_CURSOR_DRAG_VERTICAL, /* udsizing */ Ph_CURSOR_DRAG_VERTICAL, // udsizing
Ph_CURSOR_DRAG_HORIZONTAL, /* leftright */ Ph_CURSOR_DRAG_HORIZONTAL, // leftright
Ph_CURSOR_DRAG_HORIZONTAL, /* lrsizing */ Ph_CURSOR_DRAG_HORIZONTAL, // lrsizing
Ph_CURSOR_WAIT, /* busy */ Ph_CURSOR_WAIT, // busy
Ph_CURSOR_DONT, /* no */ Ph_CURSOR_DONT, // no
Ph_CURSOR_CROSSHAIR, /* crosshair */ Ph_CURSOR_CROSSHAIR, // crosshair
Ph_CURSOR_FINGER, /* hand1 */ Ph_CURSOR_FINGER, // hand1
Ph_CURSOR_FINGER, /* hand2 */ Ph_CURSOR_FINGER, // hand2
Ph_CURSOR_FINGER, /* pencil */ Ph_CURSOR_FINGER, // pencil
Ph_CURSOR_QUESTION_POINT, /* question */ Ph_CURSOR_QUESTION_POINT, // question
Ph_CURSOR_POINTER, /* right-arrow */ Ph_CURSOR_POINTER, // right-arrow
Ph_CURSOR_POINTER, /* up-arrow */ Ph_CURSOR_POINTER, // up-arrow
Ph_CURSOR_POINTER /* last one */ Ph_CURSOR_POINTER // last one
}; };
void void
@@ -1890,8 +1903,8 @@ gui_mch_getmouse(int *x, int *y)
PhCursorInfo_t info; PhCursorInfo_t info;
short ix, iy; short ix, iy;
/* FIXME: does this return the correct position, // FIXME: does this return the correct position,
* with respect to the border? */ // with respect to the border?
PhQueryCursor(PhInputGroup(NULL), &info); PhQueryCursor(PhInputGroup(NULL), &info);
PtGetAbsPosition(gui.vimTextArea , &ix, &iy); PtGetAbsPosition(gui.vimTextArea , &ix, &iy);
@@ -1905,12 +1918,12 @@ gui_mch_setmouse(int x, int y)
short abs_x, abs_y; short abs_x, abs_y;
PtGetAbsPosition(gui.vimTextArea, &abs_x, &abs_y); PtGetAbsPosition(gui.vimTextArea, &abs_x, &abs_y);
/* Add the border offset? */ // Add the border offset?
PhMoveCursorAbs(PhInputGroup(NULL), abs_x + x, abs_y + y); PhMoveCursorAbs(PhInputGroup(NULL), abs_x + x, abs_y + y);
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Colours */ // Colours
/* /*
* Return the RGB value of a pixel as a long. * Return the RGB value of a pixel as a long.
@@ -1925,7 +1938,7 @@ gui_mch_get_rgb(guicolor_T pixel)
void void
gui_mch_new_colors(void) gui_mch_new_colors(void)
{ {
#if 0 /* Don't bother changing the cursor colour */ #if 0 // Don't bother changing the cursor colour
short color_diff; short color_diff;
/* /*
@@ -1938,7 +1951,7 @@ gui_mch_new_colors(void)
if (abs(color_diff) < 64) if (abs(color_diff) < 64)
{ {
short r, g, b; short r, g, b;
/* not a great algorithm... */ // not a great algorithm...
r = PgRedValue(gui_ph_mouse_color) ^ 255; r = PgRedValue(gui_ph_mouse_color) ^ 255;
g = PgGreenValue(gui_ph_mouse_color) ^ 255; g = PgGreenValue(gui_ph_mouse_color) ^ 255;
b = PgBlueValue(gui_ph_mouse_color) ^ 255; b = PgBlueValue(gui_ph_mouse_color) ^ 255;
@@ -1999,7 +2012,7 @@ gui_mch_invert_rectangle(int row, int col, int nr, int nc)
rect.ul.x = FILL_X(col); rect.ul.x = FILL_X(col);
rect.ul.y = FILL_Y(row); rect.ul.y = FILL_Y(row);
/* FIXME: This has an off by one pixel problem */ // FIXME: This has an off by one pixel problem
rect.lr.x = rect.ul.x + nc * gui.char_width; rect.lr.x = rect.ul.x + nc * gui.char_width;
rect.lr.y = rect.ul.y + nr * gui.char_height; rect.lr.y = rect.ul.y + nr * gui.char_height;
if (nc > 0) if (nc > 0)
@@ -2132,7 +2145,7 @@ gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
{ {
int src_taken, dst_made; int src_taken, dst_made;
/* Use a static buffer to avoid large amounts of de/allocations */ // Use a static buffer to avoid large amounts of de/allocations
if (utf8_len < len) if (utf8_len < len)
{ {
utf8_buffer = realloc(utf8_buffer, len * MB_LEN_MAX); utf8_buffer = realloc(utf8_buffer, len * MB_LEN_MAX);
@@ -2155,12 +2168,12 @@ gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
if (flags & DRAW_BOLD) if (flags & DRAW_BOLD)
{ {
/* FIXME: try and only calculate these values once... */ // FIXME: try and only calculate these values once...
rect.ul.x = FILL_X(col) + 1; rect.ul.x = FILL_X(col) + 1;
rect.ul.y = FILL_Y(row); rect.ul.y = FILL_Y(row);
rect.lr.x = FILL_X(col + len) - 1; rect.lr.x = FILL_X(col + len) - 1;
rect.lr.y = FILL_Y(row + 1) - 1; rect.lr.y = FILL_Y(row + 1) - 1;
/* PgSetUserClip(NULL) causes the scrollbar to not redraw... */ // PgSetUserClip(NULL) causes the scrollbar to not redraw...
#if 0 #if 0
pos.x++; pos.x++;
@@ -2169,7 +2182,7 @@ gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
PgSetUserClip(NULL); PgSetUserClip(NULL);
#else #else
rect.lr.y -= (p_linespace + 1) / 2; rect.lr.y -= (p_linespace + 1) / 2;
/* XXX: DrawTextArea doesn't work with phditto */ // XXX: DrawTextArea doesn't work with phditto
PgDrawTextArea(s, len, &rect, Pg_TEXT_BOTTOM); PgDrawTextArea(s, len, &rect, Pg_TEXT_BOTTOM);
#endif #endif
} }
@@ -2180,15 +2193,15 @@ gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
DRAW_END; DRAW_END;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Cursor */ // Cursor
void void
gui_mch_draw_hollow_cursor(guicolor_T color) gui_mch_draw_hollow_cursor(guicolor_T color)
{ {
PhRect_t r; PhRect_t r;
/* FIXME: Double width characters */ // FIXME: Double width characters
r.ul.x = FILL_X(gui.col); r.ul.x = FILL_X(gui.col);
r.ul.y = FILL_Y(gui.row); r.ul.y = FILL_Y(gui.row);
@@ -2240,7 +2253,7 @@ gui_mch_set_blinking(long wait, long on, long off)
void void
gui_mch_start_blink(void) gui_mch_start_blink(void)
{ {
/* Only turn on the timer on if none of the times are zero */ // Only turn on the timer on if none of the times are zero
if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus) if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
{ {
PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
@@ -2261,8 +2274,8 @@ gui_mch_stop_blink(int may_call_gui_update_cursor)
blink_state = BLINK_NONE; blink_state = BLINK_NONE;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* miscellaneous functions */ // miscellaneous functions
void void
gui_mch_beep(void) gui_mch_beep(void)
@@ -2311,8 +2324,8 @@ gui_mch_haskey(char_u *name)
return FAIL; return FAIL;
} }
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Menu */ // Menu
#ifdef FEAT_TOOLBAR #ifdef FEAT_TOOLBAR
#include "toolbar.phi" #include "toolbar.phi"
@@ -2360,8 +2373,8 @@ gui_ph_toolbar_load_icon(char_u *iconfile)
temp_phi = PxLoadImage(iconfile, NULL); temp_phi = PxLoadImage(iconfile, NULL);
if (temp_phi != NULL) if (temp_phi != NULL)
{ {
/* The label widget will free the image/palette/etc. for us when // The label widget will free the image/palette/etc. for us when
* it's destroyed */ // it's destroyed
temp_phi->flags |= Ph_RELEASE_IMAGE_ALL; temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
memcpy(&external_icon, temp_phi, sizeof(external_icon)); memcpy(&external_icon, temp_phi, sizeof(external_icon));
free(temp_phi); free(temp_phi);
@@ -2387,10 +2400,10 @@ gui_ph_toolbar_find_icon(vimmenu_T *menu)
if (menu->icon_builtin == FALSE) if (menu->icon_builtin == FALSE)
{ {
if (menu->iconfile != NULL) if (menu->iconfile != NULL)
/* TODO: use gui_find_iconfile() */ // TODO: use gui_find_iconfile()
icon = gui_ph_toolbar_load_icon(menu->iconfile); icon = gui_ph_toolbar_load_icon(menu->iconfile);
/* TODO: Restrict loading to just .png? Search for any format? */ // TODO: Restrict loading to just .png? Search for any format?
if ((icon == NULL) && if ((icon == NULL) &&
((gui_find_bitmap(menu->name, full_pathname, "gif") == OK) || ((gui_find_bitmap(menu->name, full_pathname, "gif") == OK) ||
(gui_find_bitmap(menu->name, full_pathname, "png") == OK))) (gui_find_bitmap(menu->name, full_pathname, "png") == OK)))
@@ -2421,10 +2434,12 @@ gui_mch_enable_menu(int flag)
void void
gui_mch_set_menu_pos(int x, int y, int w, int h) gui_mch_set_menu_pos(int x, int y, int w, int h)
{ {
/* Nothing */ // Nothing
} }
/* Change the position of a menu button in the parent */ /*
* Change the position of a menu button in the parent
*/
static void static void
gui_ph_position_menu(PtWidget_t *widget, int priority) gui_ph_position_menu(PtWidget_t *widget, int priority)
{ {
@@ -2433,9 +2448,9 @@ gui_ph_position_menu(PtWidget_t *widget, int priority)
traverse = PtWidgetChildBack(PtWidgetParent(widget)); traverse = PtWidgetChildBack(PtWidgetParent(widget));
/* Iterate through the list of widgets in traverse, until // Iterate through the list of widgets in traverse, until
* we find the position we want to insert our widget into */ // we find the position we want to insert our widget into
/* TODO: traverse from front to back, possible speedup? */ // TODO: traverse from front to back, possible speedup?
while (traverse != NULL) while (traverse != NULL)
{ {
PtGetResource(traverse, Pt_ARG_POINTER, &menu, 0); PtGetResource(traverse, Pt_ARG_POINTER, &menu, 0);
@@ -2444,7 +2459,7 @@ gui_ph_position_menu(PtWidget_t *widget, int priority)
priority < menu->priority && priority < menu->priority &&
widget != traverse) widget != traverse)
{ {
/* Insert the widget before the current traverse widget */ // Insert the widget before the current traverse widget
PtWidgetInsert(widget, traverse, 1); PtWidgetInsert(widget, traverse, 1);
return; return;
} }
@@ -2453,7 +2468,9 @@ gui_ph_position_menu(PtWidget_t *widget, int priority)
} }
} }
/* the index is ignored because it's not useful for our purposes */ /*
* the index is ignored because it's not useful for our purposes
*/
void void
gui_mch_add_menu(vimmenu_T *menu, int index) gui_mch_add_menu(vimmenu_T *menu, int index)
{ {
@@ -2475,7 +2492,7 @@ gui_mch_add_menu(vimmenu_T *menu, int index)
mnemonic_str[1] = NUL; mnemonic_str[1] = NUL;
} }
/* Create the menu button */ // Create the menu button
n = 0; n = 0;
PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0); PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0); PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
@@ -2492,7 +2509,7 @@ gui_mch_add_menu(vimmenu_T *menu, int index)
PtAddCallback(menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu); PtAddCallback(menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu);
/* Create the actual menu */ // Create the actual menu
n = 0; n = 0;
if (parent != NULL) if (parent != NULL)
PtSetArg(&args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD); PtSetArg(&args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD);
@@ -2513,7 +2530,7 @@ gui_mch_add_menu(vimmenu_T *menu, int index)
gui_ph_position_menu(menu->id, menu->priority); gui_ph_position_menu(menu->id, menu->priority);
/* Redraw menubar here instead of gui_mch_draw_menubar */ // Redraw menubar here instead of gui_mch_draw_menubar
if (gui.menu_is_active) if (gui.menu_is_active)
PtRealizeWidget(menu->id); PtRealizeWidget(menu->id);
} }
@@ -2583,7 +2600,7 @@ gui_mch_add_menu_item(vimmenu_T *menu, int index)
PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu); PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
} }
/* Update toolbar if it's open */ // Update toolbar if it's open
if (PtWidgetIsRealized(gui.vimToolBar)) if (PtWidgetIsRealized(gui.vimToolBar))
PtRealizeWidget(menu->id); PtRealizeWidget(menu->id);
} }
@@ -2669,16 +2686,15 @@ gui_mch_menu_grey(vimmenu_T *menu, int grey)
void void
gui_mch_menu_hidden(vimmenu_T *menu, int hidden) gui_mch_menu_hidden(vimmenu_T *menu, int hidden)
{ {
/* TODO: [un]realize the widget? */ // TODO: [un]realize the widget?
} }
void void
gui_mch_draw_menubar(void) gui_mch_draw_menubar(void)
{ {
/* The only time a redraw is needed is when a menu button // The only time a redraw is needed is when a menu button
* is added to the menubar, and that is detected and the bar // is added to the menubar, and that is detected and the bar
* redrawn in gui_mch_add_menu_item // redrawn in gui_mch_add_menu_item
*/
} }
void void
@@ -2691,7 +2707,7 @@ gui_mch_show_popupmenu(vimmenu_T *menu)
void void
gui_mch_toggle_tearoffs(int enable) gui_mch_toggle_tearoffs(int enable)
{ {
/* No tearoffs yet */ // No tearoffs yet
} }
#endif #endif
@@ -2707,16 +2723,16 @@ gui_mch_show_toolbar(int showit)
} }
#endif #endif
/****************************************************************************/ ////////////////////////////////////////////////////////////////////////////
/* Fonts */ // Fonts
static GuiFont static GuiFont
gui_ph_get_font( gui_ph_get_font(
char_u *font_name, char_u *font_name,
int_u font_flags, int_u font_flags,
int_u font_size, int_u font_size,
/* Check whether the resulting font has the font flags and size that // Check whether the resulting font has the font flags and size that
* was asked for */ // was asked for
int_u enforce int_u enforce
) )
{ {
@@ -2730,7 +2746,7 @@ gui_ph_get_font(
if (PfGenerateFontName(font_name, font_flags, font_size, if (PfGenerateFontName(font_name, font_flags, font_size,
font_tag) != NULL) font_tag) != NULL)
{ {
/* Enforce some limits on the font used */ // Enforce some limits on the font used
style = PHFONT_INFO_FIXED; style = PHFONT_INFO_FIXED;
if (enforce & PF_STYLE_BOLD) if (enforce & PF_STYLE_BOLD)
@@ -2745,8 +2761,8 @@ gui_ph_get_font(
if (info.size == 0) if (info.size == 0)
font_size = 0; font_size = 0;
/* Make sure font size matches, and that the font style // Make sure font size matches, and that the font style
* at least has the bits we're checking for */ // at least has the bits we're checking for
if (font_size == info.size && if (font_size == info.size &&
style == (info.style & style)) style == (info.style & style))
return (GuiFont)font_tag; return (GuiFont)font_tag;
@@ -2799,7 +2815,7 @@ gui_ph_parse_font_name(
case 's': case 's':
size = getdigits(&mark); size = getdigits(&mark);
/* Restrict the size to some vague limits */ // Restrict the size to some vague limits
if (size < 1 || size > 100) if (size < 1 || size > 100)
size = 8; size = 8;
@@ -2829,7 +2845,7 @@ gui_mch_init_font(char_u *vim_font_name, int fontset)
if (vim_font_name == NULL) if (vim_font_name == NULL)
{ {
/* Default font */ // Default font
vim_font_name = "PC Terminal"; vim_font_name = "PC Terminal";
} }
@@ -2872,7 +2888,7 @@ gui_mch_init_font(char_u *vim_font_name, int fontset)
gui.ital_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_ITALIC, gui.ital_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_ITALIC,
font_size, PF_STYLE_ITALIC); font_size, PF_STYLE_ITALIC);
/* This extent was brought to you by the letter 'g' */ // This extent was brought to you by the letter 'g'
PfExtentText(&extent, NULL, font_tag, "g", 1); PfExtentText(&extent, NULL, font_tag, "g", 1);
gui.char_width = extent.lr.x - extent.ul.x + 1; gui.char_width = extent.lr.x - extent.ul.x + 1;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -46,9 +46,8 @@ extern Widget vimShell;
# define apply_fontlist(w) # define apply_fontlist(w)
#endif #endif
/**************************************************************************** /////////////////////////////////////////////////////////////////////////////
* Font selection dialogue implementation. // Font selection dialogue implementation.
*/
static char wild[3] = "*"; static char wild[3] = "*";
@@ -68,10 +67,10 @@ add_cancel_action(Widget shell, XtCallbackProc close_callback, void *arg)
static Atom dw_atom = 0; static Atom dw_atom = 0;
Display *display = XtDisplay(shell); Display *display = XtDisplay(shell);
/* deactivate the built-in delete response of killing the application */ // deactivate the built-in delete response of killing the application
XtVaSetValues(shell, XmNdeleteResponse, XmDO_NOTHING, NULL); XtVaSetValues(shell, XmNdeleteResponse, XmDO_NOTHING, NULL);
/* add a delete window protocol callback instead */ // add a delete window protocol callback instead
if (!dw_atom) if (!dw_atom)
{ {
wmp_atom = XmInternAtom(display, "WM_PROTOCOLS", True); wmp_atom = XmInternAtom(display, "WM_PROTOCOLS", True);
@@ -105,14 +104,14 @@ typedef struct _SharedFontSelData
Widget list[NONE]; Widget list[NONE];
Widget name; Widget name;
Widget sample; Widget sample;
char **names; /* font name array of arrays */ char **names; // font name array of arrays
int num; /* number of font names */ int num; // number of font names
String sel[NONE]; /* selection category */ String sel[NONE]; // selection category
Boolean in_pixels; /* toggle state - size in pixels */ Boolean in_pixels; // toggle state - size in pixels
char *font_name; /* current font name */ char *font_name; // current font name
XFontStruct *old; /* font data structure for sample display */ XFontStruct *old; // font data structure for sample display
XmFontList old_list; /* font data structure for sample display */ XmFontList old_list; // font data structure for sample display
Boolean exit; /* used for program exit control */ Boolean exit; // used for program exit control
} SharedFontSelData; } SharedFontSelData;
/* /*
@@ -121,7 +120,7 @@ typedef struct _SharedFontSelData
static char * static char *
fn(SharedFontSelData *data, int i) fn(SharedFontSelData *data, int i)
{ {
/* Assertion checks: */ // Assertion checks:
if (data->num < 0) if (data->num < 0)
abort(); abort();
if (i >= data->num) if (i >= data->num)
@@ -279,14 +278,14 @@ add_to_list(char **buf, char *item, int *count)
if (*count == MAX_ENTRIES_IN_LIST) if (*count == MAX_ENTRIES_IN_LIST)
return; return;
/* avoid duplication */ // avoid duplication
for (i = 0; i < *count; ++i) for (i = 0; i < *count; ++i)
{ {
if (!strcmp(buf[i], item)) if (!strcmp(buf[i], item))
return; return;
} }
/* find order place, but make sure that wild card comes first */ // find order place, but make sure that wild card comes first
if (!strcmp(item, wild)) if (!strcmp(item, wild))
i = 0; i = 0;
else else
@@ -294,7 +293,7 @@ add_to_list(char **buf, char *item, int *count)
if (strcmp(buf[i], item) > 0 && strcmp(buf[i], wild)) if (strcmp(buf[i], item) > 0 && strcmp(buf[i], wild))
break; break;
/* now insert the item */ // now insert the item
for (j = *count; j > i; --j) for (j = *count; j > i; --j)
buf[j] = buf[j-1]; buf[j] = buf[j-1];
buf[i] = XtNewString(item); buf[i] = XtNewString(item);
@@ -310,12 +309,11 @@ match(SharedFontSelData *data, enum ListSpecifier l, int i)
{ {
char buf[TEMP_BUF_SIZE]; char buf[TEMP_BUF_SIZE];
/* An empty selection or a wild card matches anything. // An empty selection or a wild card matches anything.
*/
if (!data->sel[l] || !strcmp(data->sel[l], wild)) if (!data->sel[l] || !strcmp(data->sel[l], wild))
return True; return True;
/* chunk out the desired part... */ // chunk out the desired part...
switch (l) switch (l)
{ {
case ENCODING: case ENCODING:
@@ -337,7 +335,7 @@ match(SharedFontSelData *data, enum ListSpecifier l, int i)
; ;
} }
/* ...and chew it now */ // ...and chew it now
return !strcmp(buf, data->sel[l]); return !strcmp(buf, data->sel[l]);
} }
@@ -374,7 +372,7 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
for (idx = (int)ENCODING; idx < (int)NONE; ++idx) for (idx = (int)ENCODING; idx < (int)NONE; ++idx)
count[idx] = 0; count[idx] = 0;
/* First we insert the wild char into every single list. */ // First we insert the wild char into every single list.
if (fix != ENCODING) if (fix != ENCODING)
add_to_list(list[ENCODING], wild, &count[ENCODING]); add_to_list(list[ENCODING], wild, &count[ENCODING]);
if (fix != NAME) if (fix != NAME)
@@ -436,7 +434,7 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
WidgetList children; WidgetList children;
Widget selected_button = 0; Widget selected_button = 0;
/* Get and update the current button list. */ // Get and update the current button list.
XtVaGetValues(data->encoding_pulldown, XtVaGetValues(data->encoding_pulldown,
XmNchildren, &children, XmNchildren, &children,
XmNnumChildren, &n_items, XmNnumChildren, &n_items,
@@ -450,7 +448,7 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
if (i < (int)n_items) if (i < (int)n_items)
{ {
/* recycle old button */ // recycle old button
XtVaSetValues(children[i], XtVaSetValues(children[i],
XmNlabelString, items[i], XmNlabelString, items[i],
XmNuserData, i, XmNuserData, i,
@@ -459,7 +457,7 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
} }
else else
{ {
/* create a new button */ // create a new button
button = XtVaCreateManagedWidget("button", button = XtVaCreateManagedWidget("button",
xmPushButtonGadgetClass, xmPushButtonGadgetClass,
data->encoding_pulldown, data->encoding_pulldown,
@@ -479,16 +477,14 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
XtFree(list[ENCODING][i]); XtFree(list[ENCODING][i]);
} }
/* Destroy all the outstanding menu items. // Destroy all the outstanding menu items.
*/
for (i = count[ENCODING]; i < (int)n_items; ++i) for (i = count[ENCODING]; i < (int)n_items; ++i)
{ {
XtUnmanageChild(children[i]); XtUnmanageChild(children[i]);
XtDestroyWidget(children[i]); XtDestroyWidget(children[i]);
} }
/* Preserve the current selection visually. // Preserve the current selection visually.
*/
if (selected_button) if (selected_button)
{ {
XtVaSetValues(data->encoding_menu, XtVaSetValues(data->encoding_menu,
@@ -522,7 +518,7 @@ fill_lists(enum ListSpecifier fix, SharedFontSelData *data)
w = data->list[SIZE]; w = data->list[SIZE];
break; break;
default: default:
w = (Widget)0; /* for lint */ w = (Widget)0; // for lint
} }
for (i = 0; i < count[idx]; ++i) for (i = 0; i < count[idx]; ++i)
@@ -635,7 +631,7 @@ do_choice(Widget w,
{ {
if (!strcmp(data->sel[which], sel)) if (!strcmp(data->sel[which], sel))
{ {
/* unselecting current selection */ // unselecting current selection
XtFree(data->sel[which]); XtFree(data->sel[which]);
data->sel[which] = NULL; data->sel[which] = NULL;
if (w) if (w)
@@ -651,7 +647,7 @@ do_choice(Widget w,
fill_lists(which, data); fill_lists(which, data);
/* If there is a font selection, we display it. */ // If there is a font selection, we display it.
if (data->sel[ENCODING] if (data->sel[ENCODING]
&& data->sel[NAME] && data->sel[NAME]
&& data->sel[STYLE] && data->sel[STYLE]
@@ -904,11 +900,11 @@ gui_xm_select_font(char_u *current)
data->old = XLoadQueryFont(XtDisplay(parent), big_font); data->old = XLoadQueryFont(XtDisplay(parent), big_font);
data->old_list = gui_motif_create_fontlist(data->old); data->old_list = gui_motif_create_fontlist(data->old);
/* Set the title of the Dialog window. */ // Set the title of the Dialog window.
data->dialog = XmCreateDialogShell(parent, "fontSelector", NULL, 0); data->dialog = XmCreateDialogShell(parent, "fontSelector", NULL, 0);
str = XmStringCreateLocalized(_("Vim - Font Selector")); str = XmStringCreateLocalized(_("Vim - Font Selector"));
/* Create form popup dialog widget. */ // Create form popup dialog widget.
form = XtVaCreateWidget("form", form = XtVaCreateWidget("form",
xmFormWidgetClass, data->dialog, xmFormWidgetClass, data->dialog,
XmNdialogTitle, str, XmNdialogTitle, str,
@@ -948,7 +944,7 @@ gui_xm_select_font(char_u *current)
NULL); NULL);
apply_fontlist(data->cancel); apply_fontlist(data->cancel);
/* Create the separator for beauty. */ // Create the separator for beauty.
n = 0; n = 0;
XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++;
XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
@@ -959,7 +955,7 @@ gui_xm_select_font(char_u *current)
separator = XmCreateSeparatorGadget(form, "separator", args, n); separator = XmCreateSeparatorGadget(form, "separator", args, n);
XtManageChild(separator); XtManageChild(separator);
/* Create font name text widget and the corresponding label. */ // Create font name text widget and the corresponding label.
data->name = XtVaCreateManagedWidget("fontName", data->name = XtVaCreateManagedWidget("fontName",
xmTextWidgetClass, form, xmTextWidgetClass, form,
XmNbottomAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM,
@@ -989,7 +985,7 @@ gui_xm_select_font(char_u *current)
XmStringFree(str); XmStringFree(str);
apply_fontlist(name); apply_fontlist(name);
/* create sample display label widget */ // create sample display label widget
disp_frame = XtVaCreateManagedWidget("sampleFrame", disp_frame = XtVaCreateManagedWidget("sampleFrame",
xmFrameWidgetClass, form, xmFrameWidgetClass, form,
XmNshadowType, XmSHADOW_ETCHED_IN, XmNshadowType, XmSHADOW_ETCHED_IN,
@@ -1014,7 +1010,7 @@ gui_xm_select_font(char_u *current)
XmNfontList, data->old_list, XmNfontList, data->old_list,
NULL); NULL);
/* create toggle button */ // create toggle button
str = XmStringCreateLocalized(_("Show size in Points")); str = XmStringCreateLocalized(_("Show size in Points"));
size_toggle = XtVaCreateManagedWidget("sizeToggle", size_toggle = XtVaCreateManagedWidget("sizeToggle",
xmToggleButtonGadgetClass, form, xmToggleButtonGadgetClass, form,
@@ -1029,8 +1025,7 @@ gui_xm_select_font(char_u *current)
apply_fontlist(size_toggle); apply_fontlist(size_toggle);
XtManageChild(size_toggle); XtManageChild(size_toggle);
/* Encoding pulldown menu. // Encoding pulldown menu.
*/
data->encoding_pulldown = XmCreatePulldownMenu(form, data->encoding_pulldown = XmCreatePulldownMenu(form,
"encodingPulldown", NULL, 0); "encodingPulldown", NULL, 0);
@@ -1070,7 +1065,7 @@ gui_xm_select_font(char_u *current)
XmNorientation, XmVERTICAL, XmNorientation, XmVERTICAL,
NULL); NULL);
/* font list */ // font list
frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form, frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form,
XmNshadowThickness, 0, XmNshadowThickness, 0,
XmNtopAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM,
@@ -1101,7 +1096,7 @@ gui_xm_select_font(char_u *current)
data->list[NAME] = XmCreateScrolledList(frame, "fontList", args, n); data->list[NAME] = XmCreateScrolledList(frame, "fontList", args, n);
XtVaSetValues(name, XmNuserData, data->list[NAME], NULL); XtVaSetValues(name, XmNuserData, data->list[NAME], NULL);
/* style list */ // style list
frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form, frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form,
XmNshadowThickness, 0, XmNshadowThickness, 0,
XmNtopAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM,
@@ -1134,7 +1129,7 @@ gui_xm_select_font(char_u *current)
data->list[STYLE] = XmCreateScrolledList(frame, "styleList", args, n); data->list[STYLE] = XmCreateScrolledList(frame, "styleList", args, n);
XtVaSetValues(name, XmNuserData, data->list[STYLE], NULL); XtVaSetValues(name, XmNuserData, data->list[STYLE], NULL);
/* size list */ // size list
frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form, frame = XtVaCreateManagedWidget("frame", xmFrameWidgetClass, sub_form,
XmNshadowThickness, 0, XmNshadowThickness, 0,
XmNtopAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM,
@@ -1166,7 +1161,7 @@ gui_xm_select_font(char_u *current)
data->list[SIZE] = XmCreateScrolledList(frame, "sizeList", args, n); data->list[SIZE] = XmCreateScrolledList(frame, "sizeList", args, n);
XtVaSetValues(name, XmNuserData, data->list[SIZE], NULL); XtVaSetValues(name, XmNuserData, data->list[SIZE], NULL);
/* update form widgets cancel button */ // update form widgets cancel button
XtVaSetValues(form, XmNcancelButton, data->cancel, NULL); XtVaSetValues(form, XmNcancelButton, data->cancel, NULL);
XtAddCallback(size_toggle, XmNvalueChangedCallback, XtAddCallback(size_toggle, XmNvalueChangedCallback,
@@ -1184,7 +1179,7 @@ gui_xm_select_font(char_u *current)
XmProcessTraversal(data->list[NAME], XmTRAVERSE_CURRENT); XmProcessTraversal(data->list[NAME], XmTRAVERSE_CURRENT);
/* setup tabgroups */ // setup tabgroups
XmAddTabGroup(data->list[NAME]); XmAddTabGroup(data->list[NAME]);
XmAddTabGroup(data->list[STYLE]); XmAddTabGroup(data->list[STYLE]);
@@ -1196,7 +1191,7 @@ gui_xm_select_font(char_u *current)
add_cancel_action(data->dialog, (XtCallbackProc)cancel_callback, data); add_cancel_action(data->dialog, (XtCallbackProc)cancel_callback, data);
/* Preset selection data. */ // Preset selection data.
data->exit = False; data->exit = False;
data->in_pixels= True; data->in_pixels= True;
@@ -1206,7 +1201,7 @@ gui_xm_select_font(char_u *current)
data->sel[SIZE] = NULL; data->sel[SIZE] = NULL;
data->font_name = NULL; data->font_name = NULL;
/* set up current font parameters */ // set up current font parameters
if (current && current[0] != '\0') if (current && current[0] != '\0')
{ {
int i; int i;
@@ -1244,14 +1239,12 @@ gui_xm_select_font(char_u *current)
} }
else else
{ {
/* We can't preset a symbolic name, which isn't a full font // We can't preset a symbolic name, which isn't a full font
* description. Therefore we just behave the same way as if the // description. Therefore we just behave the same way as if the
* user didn't have selected anything thus far. // user didn't have selected anything thus far.
* //
* Unfortunately there is no known way to expand an abbreviated // Unfortunately there is no known way to expand an abbreviated
* font name. // font name.
*/
data->font_name = NULL; data->font_name = NULL;
} }
} }
@@ -1260,16 +1253,15 @@ gui_xm_select_font(char_u *current)
fill_lists(NONE, data); fill_lists(NONE, data);
/* Unfortunately LessTif doesn't align the list widget's properly. I don't // Unfortunately LessTif doesn't align the list widget's properly. I don't
* have currently any idea how to fix this problem. // have currently any idea how to fix this problem.
*/
XtManageChild(data->list[NAME]); XtManageChild(data->list[NAME]);
XtManageChild(data->list[STYLE]); XtManageChild(data->list[STYLE]);
XtManageChild(data->list[SIZE]); XtManageChild(data->list[SIZE]);
XtManageChild(data->encoding_menu); XtManageChild(data->encoding_menu);
manage_centered(form); manage_centered(form);
/* modal event loop */ // modal event loop
while (!data->exit) while (!data->exit)
XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog), XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
(XtInputMask)XtIMAll); (XtInputMask)XtIMAll);

View File

@@ -52,13 +52,12 @@
#include "gui_xmebwp.h" #include "gui_xmebwp.h"
/* Provide some missing wrappers, which are missed from the LessTif // Provide some missing wrappers, which are missed from the LessTif
* implementation. Also missing in Motif 1.2 and earlier. // implementation. Also missing in Motif 1.2 and earlier.
* //
* We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the // We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the
* pixmap will not appear in its caches properly. We cache the interesting // pixmap will not appear in its caches properly. We cache the interesting
* values in XmEnhancedButtonPart instead ourself. // values in XmEnhancedButtonPart instead ourself.
*/
#if defined(LESSTIF_VERSION) || (XmVersion <= 1002) #if defined(LESSTIF_VERSION) || (XmVersion <= 1002)
# ifndef Lab_IsMenupane # ifndef Lab_IsMenupane
# define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \
@@ -74,7 +73,7 @@
* Motif internals we have to cheat around with. * Motif internals we have to cheat around with.
*/ */
/* Hopefully this will never change... */ // Hopefully this will never change...
#ifndef XmFOCUS_IGNORE #ifndef XmFOCUS_IGNORE
# define XmFOCUS_IGNORE 1<<1 # define XmFOCUS_IGNORE 1<<1
#endif #endif
@@ -144,8 +143,8 @@ static XtResource resources[] =
} }
}; };
/* This is needed to work around a bug in Lesstif 2, leaving the extension // This is needed to work around a bug in Lesstif 2, leaving the extension
* NULL somehow results in getting it set to an invalid pointer. */ // NULL somehow results in getting it set to an invalid pointer.
XmPrimitiveClassExtRec xmEnhancedButtonPrimClassExtRec = XmPrimitiveClassExtRec xmEnhancedButtonPrimClassExtRec =
{ {
/* next_extension */ NULL, /* next_extension */ NULL,
@@ -160,7 +159,7 @@ XmPrimitiveClassExtRec xmEnhancedButtonPrimClassExtRec =
XmEnhancedButtonClassRec xmEnhancedButtonClassRec = XmEnhancedButtonClassRec xmEnhancedButtonClassRec =
{ {
{ {
/* core_class fields */ // core_class fields
/* superclass */ (WidgetClass) & xmPushButtonClassRec, /* superclass */ (WidgetClass) & xmPushButtonClassRec,
/* class_name */ "XmEnhancedButton", /* class_name */ "XmEnhancedButton",
/* widget_size */ sizeof(XmEnhancedButtonRec), /* widget_size */ sizeof(XmEnhancedButtonRec),
@@ -195,7 +194,7 @@ XmEnhancedButtonClassRec xmEnhancedButtonClassRec =
/* extension */ NULL /* extension */ NULL
}, },
/* primitive_class fields */ // primitive_class fields
{ {
/* border highlight */ BorderHighlight, /* border highlight */ BorderHighlight,
/* border_unhighlight */ BorderUnhighlight, /* border_unhighlight */ BorderUnhighlight,
@@ -206,7 +205,7 @@ XmEnhancedButtonClassRec xmEnhancedButtonClassRec =
/* extension */ (XtPointer)&xmEnhancedButtonPrimClassExtRec, /* extension */ (XtPointer)&xmEnhancedButtonPrimClassExtRec,
}, },
/* label_class fields */ // label_class fields
{ {
/* setOverrideCallback */ XmInheritSetOverrideCallback, /* setOverrideCallback */ XmInheritSetOverrideCallback,
/* menuProcs */ XmInheritMenuProc, /* menuProcs */ XmInheritMenuProc,
@@ -214,12 +213,12 @@ XmEnhancedButtonClassRec xmEnhancedButtonClassRec =
/* extension */ NULL, /* extension */ NULL,
}, },
/* pushbutton_class record */ // pushbutton_class record
{ {
/* extension */ (XtPointer) NULL, /* extension */ (XtPointer) NULL,
}, },
/* enhancedbutton_class fields */ // enhancedbutton_class fields
{ {
/* stipple_bitmap */ None /* stipple_bitmap */ None
} }
@@ -262,17 +261,17 @@ alloc_color(Display *display,
return status != 0 ? 1 : 0; return status != 0 ? 1 : 0;
} }
/* XPM */ // XPM
static char * blank_xpm[] = static char * blank_xpm[] =
{ {
/* width height ncolors cpp [x_hot y_hot] */ // width height ncolors cpp [x_hot y_hot]
"12 12 4 1 0 0", "12 12 4 1 0 0",
/* colors */ // colors
" s iconColor1 m black c #000000", " s iconColor1 m black c #000000",
". s none m none c none", ". s none m none c none",
"X s topShadowColor m none c #DCDEE5", "X s topShadowColor m none c #DCDEE5",
"o s bottomShadowColor m black c #5D6069", "o s bottomShadowColor m black c #5D6069",
/* pixels */ // pixels
" ..", " ..",
" XXXXXXXX ..", " XXXXXXXX ..",
" X....... o.", " X....... o.",
@@ -292,8 +291,8 @@ static char * blank_xpm[] =
static void static void
set_pixmap(XmEnhancedButtonWidget eb) set_pixmap(XmEnhancedButtonWidget eb)
{ {
/* Configure defines XPMATTRIBUTES_TYPE as XpmAttributes or as // Configure defines XPMATTRIBUTES_TYPE as XpmAttributes or as
* XpmAttributes_21, depending on what is in Xm/XpmP.h. */ // XpmAttributes_21, depending on what is in Xm/XpmP.h.
XPMATTRIBUTES_TYPE attr; XPMATTRIBUTES_TYPE attr;
Pixmap sen_pix; Pixmap sen_pix;
Window root; Window root;
@@ -323,8 +322,7 @@ set_pixmap(XmEnhancedButtonWidget eb)
int shift; int shift;
GC gc; GC gc;
/* Make sure there is a default value for the pixmap. // Make sure there is a default value for the pixmap.
*/
if (!data) if (!data)
return; return;
@@ -343,7 +341,7 @@ set_pixmap(XmEnhancedButtonWidget eb)
eb->enhancedbutton.highlight_pixmap = None; eb->enhancedbutton.highlight_pixmap = None;
eb->enhancedbutton.insensitive_pixmap = None; eb->enhancedbutton.insensitive_pixmap = None;
/* We use dynamic colors, get them now. */ // We use dynamic colors, get them now.
motif_get_toolbar_colors( motif_get_toolbar_colors(
&eb->core.background_pixel, &eb->core.background_pixel,
&eb->primitive.foreground, &eb->primitive.foreground,
@@ -351,7 +349,7 @@ set_pixmap(XmEnhancedButtonWidget eb)
&eb->primitive.top_shadow_color, &eb->primitive.top_shadow_color,
&eb->primitive.highlight_color); &eb->primitive.highlight_color);
/* Setup color substitution table. */ // Setup color substitution table.
color[0].pixel = eb->core.background_pixel; color[0].pixel = eb->core.background_pixel;
color[1].pixel = eb->core.background_pixel; color[1].pixel = eb->core.background_pixel;
color[2].pixel = eb->core.background_pixel; color[2].pixel = eb->core.background_pixel;
@@ -361,9 +359,9 @@ set_pixmap(XmEnhancedButtonWidget eb)
color[6].pixel = eb->primitive.highlight_color; color[6].pixel = eb->primitive.highlight_color;
color[7].pixel = eb->pushbutton.arm_color; color[7].pixel = eb->pushbutton.arm_color;
/* Create the "sensitive" pixmap. */ // Create the "sensitive" pixmap.
attr.valuemask = XpmColorSymbols | XpmCloseness; attr.valuemask = XpmColorSymbols | XpmCloseness;
attr.closeness = 65535; /* accuracy isn't crucial */ attr.closeness = 65535; // accuracy isn't crucial
attr.colorsymbols = color; attr.colorsymbols = color;
attr.numsymbols = XtNumber(color); attr.numsymbols = XtNumber(color);
@@ -372,7 +370,7 @@ set_pixmap(XmEnhancedButtonWidget eb)
if (!fname || status != XpmSuccess) if (!fname || status != XpmSuccess)
status = XpmCreatePixmapFromData(dpy, root, data, &pix, &mask, &attr); status = XpmCreatePixmapFromData(dpy, root, data, &pix, &mask, &attr);
/* If something failed, we will fill in the default pixmap. */ // If something failed, we will fill in the default pixmap.
if (status != XpmSuccess) if (status != XpmSuccess)
status = XpmCreatePixmapFromData(dpy, root, blank_xpm, &pix, status = XpmCreatePixmapFromData(dpy, root, blank_xpm, &pix,
&mask, &attr); &mask, &attr);
@@ -381,7 +379,7 @@ set_pixmap(XmEnhancedButtonWidget eb)
XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth); XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
/* TODO: does the shift depend on label_location somehow? */ // TODO: does the shift depend on label_location somehow?
shift = eb->primitive.shadow_thickness / 2; shift = eb->primitive.shadow_thickness / 2;
if (shift < 1) if (shift < 1)
@@ -395,15 +393,15 @@ set_pixmap(XmEnhancedButtonWidget eb)
XSetClipOrigin(dpy, gc, shift, shift); XSetClipOrigin(dpy, gc, shift, shift);
XCopyArea(dpy, pix, sen_pix, gc, 0, 0, width, height, shift, shift); XCopyArea(dpy, pix, sen_pix, gc, 0, 0, width, height, shift, shift);
/* Create the "highlight" pixmap. */ // Create the "highlight" pixmap.
color[4].pixel = eb->primitive.bottom_shadow_color; color[4].pixel = eb->primitive.bottom_shadow_color;
#ifdef XpmAllocColor /* SGI doesn't have it */ #ifdef XpmAllocColor // SGI doesn't have it
attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor; attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor;
attr.alloc_color = alloc_color; attr.alloc_color = alloc_color;
#else #else
attr.valuemask = XpmColorSymbols | XpmCloseness; attr.valuemask = XpmColorSymbols | XpmCloseness;
#endif #endif
attr.closeness = 65535; /* accuracy isn't crucial */ attr.closeness = 65535; // accuracy isn't crucial
attr.colorsymbols = color; attr.colorsymbols = color;
attr.numsymbols = XtNumber(color); attr.numsymbols = XtNumber(color);
@@ -439,15 +437,15 @@ set_pixmap(XmEnhancedButtonWidget eb)
XFreePixmap(dpy, pix); XFreePixmap(dpy, pix);
XFreePixmap(dpy, mask); XFreePixmap(dpy, mask);
/* Create the "insensitive" pixmap. */ // Create the "insensitive" pixmap.
attr.valuemask = XpmColorSymbols | XpmCloseness | XpmColorKey; attr.valuemask = XpmColorSymbols | XpmCloseness | XpmColorKey;
attr.closeness = 65535; /* accuracy isn't crucial */ attr.closeness = 65535; // accuracy isn't crucial
attr.colorsymbols = color; attr.colorsymbols = color;
attr.numsymbols = sizeof(color) / sizeof(color[0]); attr.numsymbols = sizeof(color) / sizeof(color[0]);
attr.color_key = XPM_MONO; attr.color_key = XPM_MONO;
status = XpmCreatePixmapFromData(dpy, root, data, &pix, &mask, &attr); status = XpmCreatePixmapFromData(dpy, root, data, &pix, &mask, &attr);
/* Need to create new Pixmaps with the mask applied. */ // Need to create new Pixmaps with the mask applied.
ins_pix = XCreatePixmap(dpy, root, width + shift, height + shift, depth); ins_pix = XCreatePixmap(dpy, root, width + shift, height + shift, depth);
@@ -566,13 +564,13 @@ draw_unhighlight(XmEnhancedButtonWidget eb)
XtClass(eb->core.parent), XmQTspecifyUnhighlight)) XtClass(eb->core.parent), XmQTspecifyUnhighlight))
!= NULL) && (UnhighlightT->getUnhighlightGC != NULL)) != NULL) && (UnhighlightT->getUnhighlightGC != NULL))
{ {
/* if unhighlight trait in parent use specified GC... */ // if unhighlight trait in parent use specified GC...
manager_background_GC = manager_background_GC =
UnhighlightT->getUnhighlightGC(eb->core.parent, (Widget) eb); UnhighlightT->getUnhighlightGC(eb->core.parent, (Widget) eb);
} }
else else
{ {
/* ...otherwise, use parent's background GC */ // ...otherwise, use parent's background GC
manager_background_GC = ((XmManagerWidget) manager_background_GC = ((XmManagerWidget)
(eb->core.parent))->manager.background_GC; (eb->core.parent))->manager.background_GC;
} }
@@ -696,7 +694,7 @@ draw_label(XmEnhancedButtonWidget eb, XEvent *event, Region region)
eb->label.pixmap = eb->pushbutton.unarm_pixmap; eb->label.pixmap = eb->pushbutton.unarm_pixmap;
} }
else else
/* pushbutton is not armed */ // pushbutton is not armed
eb->label.pixmap = eb->pushbutton.unarm_pixmap; eb->label.pixmap = eb->pushbutton.unarm_pixmap;
} }
@@ -758,7 +756,7 @@ Enter(Widget wid,
if (eb->pushbutton.armed) if (eb->pushbutton.armed)
return; return;
/* ...so KHelp event is delivered correctly. */ // ...so KHelp event is delivered correctly.
_XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, TRUE); _XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, TRUE);
XtSetKeyboardFocus(XtParent(XtParent(eb)), (Widget) eb); XtSetKeyboardFocus(XtParent(XtParent(eb)), (Widget) eb);
_XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, FALSE); _XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, FALSE);
@@ -767,7 +765,7 @@ Enter(Widget wid,
((XmManagerWidget) XtParent(wid))->manager.active_child = wid; ((XmManagerWidget) XtParent(wid))->manager.active_child = wid;
/* etched in menu button */ // etched in menu button
if (etched_in && !XmIsTearOffButton(eb)) if (etched_in && !XmIsTearOffButton(eb))
{ {
XFillRectangle(XtDisplay(eb), XtWindow(eb), XFillRectangle(XtDisplay(eb), XtWindow(eb),
@@ -843,7 +841,7 @@ Leave(Widget wid,
if (_XmGetInDragMode((Widget)eb) if (_XmGetInDragMode((Widget)eb)
&& eb->pushbutton.armed && eb->pushbutton.armed
&& ( /* !ActiveTearOff || */ && ( // !ActiveTearOff ||
event->xcrossing.mode == NotifyNormal)) event->xcrossing.mode == NotifyNormal))
{ {
eb->pushbutton.armed = FALSE; eb->pushbutton.armed = FALSE;
@@ -915,7 +913,7 @@ set_size(XmEnhancedButtonWidget newtb)
_XmCalcLabelDimensions((Widget) newtb); _XmCalcLabelDimensions((Widget) newtb);
/* Find out how big the pixmap is */ // Find out how big the pixmap is
if (newtb->enhancedbutton.pixmap_data if (newtb->enhancedbutton.pixmap_data
&& !IsNull(newtb->label.pixmap) && !IsNull(newtb->label.pixmap)
&& !IsNull(newtb->enhancedbutton.normal_pixmap)) && !IsNull(newtb->enhancedbutton.normal_pixmap))
@@ -958,8 +956,8 @@ set_size(XmEnhancedButtonWidget newtb)
} }
else else
{ {
/* FIXME: We should calculate an drawing offset for the pixmap here to // FIXME: We should calculate an drawing offset for the pixmap here to
* adjust it. */ // adjust it.
} }
#if 0 #if 0
@@ -972,7 +970,7 @@ set_size(XmEnhancedButtonWidget newtb)
newtb->core.height); newtb->core.height);
#endif #endif
/* Invoke Label's Resize procedure. */ // Invoke Label's Resize procedure.
{ {
XtWidgetProc resize; XtWidgetProc resize;
XtProcessLock(); XtProcessLock();
@@ -994,7 +992,7 @@ Initialize(Widget rq, Widget ebw, ArgList args UNUSED, Cardinal *n UNUSED)
resize = xmLabelClassRec.core_class.resize; resize = xmLabelClassRec.core_class.resize;
XtProcessUnlock(); XtProcessUnlock();
/* Create a bitmap for stippling (Drawable resources are cheap). */ // Create a bitmap for stippling (Drawable resources are cheap).
if (STIPPLE_BITMAP == None) if (STIPPLE_BITMAP == None)
{ {
Display *dpy = XtDisplay((Widget) request); Display *dpy = XtDisplay((Widget) request);
@@ -1005,15 +1003,14 @@ Initialize(Widget rq, Widget ebw, ArgList args UNUSED, Cardinal *n UNUSED)
} }
eb->enhancedbutton.doing_setvalues = False; eb->enhancedbutton.doing_setvalues = False;
/* First see what type of extended label this is. // First see what type of extended label this is.
*/
if (eb->enhancedbutton.pixmap_data) if (eb->enhancedbutton.pixmap_data)
{ {
XmString str; XmString str;
set_pixmap(eb); set_pixmap(eb);
/* FIXME: this is not the perfect way to deal with menus, which do not // FIXME: this is not the perfect way to deal with menus, which do not
* have any string set right now. */ // have any string set right now.
str = XmStringCreateLocalized(""); str = XmStringCreateLocalized("");
XtVaSetValues((Widget) eb, XmNlabelString, str, NULL); XtVaSetValues((Widget) eb, XmNlabelString, str, NULL);
XmStringFree(str); XmStringFree(str);
@@ -1106,7 +1103,7 @@ SetValues(Widget current,
/* /*
* Artificially let the highlight appear if the mouse is over us. * Artificially let the highlight appear if the mouse is over us.
*/ */
/* Best way to get the root window of object: */ // Best way to get the root window of object:
XGetGeometry(dpy, XtWindow(cur), &root, &r_x, &r_y, &r_width, XGetGeometry(dpy, XtWindow(cur), &root, &r_x, &r_y, &r_width,
&r_height, &r_border, &r_depth); &r_height, &r_border, &r_depth);
XQueryPointer(XtDisplay(cur), XtWindow(cur), &root_q, &child, XQueryPointer(XtDisplay(cur), XtWindow(cur), &root_q, &child,
@@ -1133,7 +1130,7 @@ SetValues(Widget current,
if (NOT_EQUAL(primitive.shadow_thickness)) if (NOT_EQUAL(primitive.shadow_thickness))
{ {
redraw = True; redraw = True;
/* Don't change the pixmaps */ // Don't change the pixmaps
change = False; change = False;
} }
@@ -1230,10 +1227,9 @@ Redisplay(Widget w, XEvent *event, Region region)
{ {
GC gc; GC gc;
/* Don't shade if the button contains a label with a pixmap, since // Don't shade if the button contains a label with a pixmap, since
* there is no variant of the label available with the needed // there is no variant of the label available with the needed
* background. // background.
*/
if (eb->pushbutton.armed && eb->pushbutton.fill_on_arm) if (eb->pushbutton.armed && eb->pushbutton.fill_on_arm)
{ {
if (eb->label.label_type == (int)XmPIXMAP) if (eb->label.label_type == (int)XmPIXMAP)
@@ -1248,7 +1244,7 @@ Redisplay(Widget w, XEvent *event, Region region)
} }
else else
gc = eb->pushbutton.background_gc; gc = eb->pushbutton.background_gc;
/* really need to fill with background if not armed ? */ // really need to fill with background if not armed ?
if (gc) if (gc)
XFillRectangle(XtDisplay(eb), XtWindow(eb), gc, XFillRectangle(XtDisplay(eb), XtWindow(eb), gc,
box.x, box.y, box.width, box.height); box.x, box.y, box.width, box.height);
@@ -1318,7 +1314,7 @@ Redisplay(Widget w, XEvent *event, Region region)
switch (default_button_emphasis) switch (default_button_emphasis)
{ {
case XmINTERNAL_HIGHLIGHT: case XmINTERNAL_HIGHLIGHT:
/* The call above erases the border highlighting. */ // The call above erases the border highlighting.
if (eb->primitive.highlight_drawn) if (eb->primitive.highlight_drawn)
(*(((XmPushButtonWidgetClass) XtClass (eb)) (*(((XmPushButtonWidgetClass) XtClass (eb))
->primitive_class.border_highlight)) ((Widget) eb) ; ->primitive_class.border_highlight)) ((Widget) eb) ;
@@ -1368,13 +1364,13 @@ Redisplay(Widget w, XEvent *event, Region region)
parent = XtParent(eb); parent = XtParent(eb);
if (XmIsManager(parent)) if (XmIsManager(parent))
{ {
/* Use the parent's GC so monochrome works. */ // Use the parent's GC so monochrome works.
bottom_gc = XmParentTopShadowGC(eb); bottom_gc = XmParentTopShadowGC(eb);
top_gc = XmParentBottomShadowGC(eb); top_gc = XmParentBottomShadowGC(eb);
} }
else else
{ {
/* Use your own pixel for drawing. */ // Use your own pixel for drawing.
bottom_gc = eb->primitive.top_shadow_GC; bottom_gc = eb->primitive.top_shadow_GC;
top_gc = eb->primitive.bottom_shadow_GC; top_gc = eb->primitive.bottom_shadow_GC;
} }
@@ -1447,4 +1443,4 @@ BorderUnhighlight(Widget w)
draw_pixmap(eb, NULL, NULL); draw_pixmap(eb, NULL, NULL);
} }
#endif /* FEAT_TOOLBAR */ #endif // FEAT_TOOLBAR

View File

@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2383,
/**/ /**/
2382, 2382,
/**/ /**/