Set initial size in the Haiku font dialog
* src/haiku_support.cc (class EmacsFontSelectionDialog) (EmacsFontSelectionDialog): New argument `initial_size'. (be_select_font): Likewise. * src/haiku_support.h: Update prototypes. * src/haikufont.c (Fx_select_font): Set font dialog size to the pixel size of the current font.
This commit is contained in:
parent
10284ca3d3
commit
268713e227
3 changed files with 20 additions and 6 deletions
|
@ -2577,7 +2577,8 @@ class EmacsFontSelectionDialog : public BWindow
|
|||
|
||||
EmacsFontSelectionDialog (bool monospace_only,
|
||||
int initial_family_idx,
|
||||
int initial_style_idx)
|
||||
int initial_style_idx,
|
||||
int initial_size)
|
||||
: BWindow (BRect (0, 0, 500, 500),
|
||||
"Select font from list",
|
||||
B_TITLED_WINDOW_LOOK,
|
||||
|
@ -2610,6 +2611,7 @@ class EmacsFontSelectionDialog : public BWindow
|
|||
uint32 flags, c;
|
||||
BMessage *selection;
|
||||
BTextView *size_text;
|
||||
char format_buffer[4];
|
||||
|
||||
AddChild (&basic_view);
|
||||
|
||||
|
@ -2670,6 +2672,12 @@ class EmacsFontSelectionDialog : public BWindow
|
|||
|
||||
for (c = 58; c <= 127; ++c)
|
||||
size_text->DisallowChar (c);
|
||||
|
||||
if (initial_size > 0 && initial_size < 1000)
|
||||
{
|
||||
sprintf (format_buffer, "%d", initial_size);
|
||||
size_entry.SetText (format_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -4719,7 +4727,8 @@ be_select_font (void (*process_pending_signals_function) (void),
|
|||
haiku_font_family_or_style *family,
|
||||
haiku_font_family_or_style *style,
|
||||
int *size, bool allow_monospace_only,
|
||||
int initial_family, int initial_style)
|
||||
int initial_family, int initial_style,
|
||||
int initial_size)
|
||||
{
|
||||
EmacsFontSelectionDialog *dialog;
|
||||
struct font_selection_dialog_message msg;
|
||||
|
@ -4728,7 +4737,8 @@ be_select_font (void (*process_pending_signals_function) (void),
|
|||
font_style style_buffer;
|
||||
|
||||
dialog = new EmacsFontSelectionDialog (allow_monospace_only,
|
||||
initial_family, initial_style);
|
||||
initial_family, initial_style,
|
||||
initial_size);
|
||||
dialog->CenterOnScreen ();
|
||||
|
||||
if (dialog->InitCheck () < B_OK)
|
||||
|
|
|
@ -648,7 +648,7 @@ extern bool be_replay_menu_bar_event (void *, struct haiku_menu_bar_click_event
|
|||
extern bool be_select_font (void (*) (void), bool (*) (void),
|
||||
haiku_font_family_or_style *,
|
||||
haiku_font_family_or_style *,
|
||||
int *, bool, int, int);
|
||||
int *, bool, int, int, int);
|
||||
|
||||
extern int be_find_font_indices (struct haiku_font_pattern *, int *, int *);
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -1151,7 +1151,7 @@ in the font selection dialog. */)
|
|||
struct font *font;
|
||||
Lisp_Object font_object;
|
||||
haiku_font_family_or_style family, style;
|
||||
int rc, size, initial_family, initial_style;
|
||||
int rc, size, initial_family, initial_style, initial_size;
|
||||
struct haiku_font_pattern pattern;
|
||||
Lisp_Object lfamily, lweight, lslant, lwidth, ladstyle, lsize;
|
||||
|
||||
|
@ -1162,6 +1162,7 @@ in the font selection dialog. */)
|
|||
|
||||
initial_style = -1;
|
||||
initial_family = -1;
|
||||
initial_size = -1;
|
||||
|
||||
font = FRAME_FONT (f);
|
||||
|
||||
|
@ -1173,6 +1174,8 @@ in the font selection dialog. */)
|
|||
be_find_font_indices (&pattern, &initial_family,
|
||||
&initial_style);
|
||||
haikufont_done_with_query_pattern (&pattern);
|
||||
|
||||
initial_size = font->pixel_size;
|
||||
}
|
||||
|
||||
popup_activated_p++;
|
||||
|
@ -1181,7 +1184,8 @@ in the font selection dialog. */)
|
|||
haikufont_should_quit_popup,
|
||||
&family, &style, &size,
|
||||
!NILP (exclude_proportional),
|
||||
initial_family, initial_style);
|
||||
initial_family, initial_style,
|
||||
initial_size);
|
||||
request_sigio ();
|
||||
popup_activated_p--;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue