Added Menu preferences panel. Works pretty good, too. :)
Eventually, this panel will replace the need for the Menu prefs app git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5445 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,123 @@
|
|||||||
|
#include "FontMenu.h"
|
||||||
|
#include <Message.h>
|
||||||
|
#include <MenuItem.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
FontMenu::FontMenu()
|
||||||
|
: BMenu("", B_ITEMS_IN_COLUMN)
|
||||||
|
{
|
||||||
|
get_menu_info(&info);
|
||||||
|
SetRadioMode(true);
|
||||||
|
GetFonts();
|
||||||
|
}
|
||||||
|
|
||||||
|
FontMenu::~FontMenu()
|
||||||
|
{ /*nothing to clean up*/}
|
||||||
|
|
||||||
|
void
|
||||||
|
FontMenu::GetFonts()
|
||||||
|
{
|
||||||
|
int32 numFamilies = count_font_families();
|
||||||
|
for ( int32 i = 0; i < numFamilies; i++ ) {
|
||||||
|
font_family *family = (font_family*)malloc(sizeof(font_family));
|
||||||
|
uint32 flags;
|
||||||
|
if ( get_font_family(i, family, &flags) == B_OK ) {
|
||||||
|
fontStyleMenu = new BMenu(*family, B_ITEMS_IN_COLUMN);
|
||||||
|
fontStyleMenu->SetRadioMode(true);
|
||||||
|
int32 numStyles = count_font_styles(*family);
|
||||||
|
for ( int32 j = 0; j < numStyles; j++ ) {
|
||||||
|
font_style *style = (font_style*)malloc(sizeof(font_style));
|
||||||
|
if ( get_font_style(*family, j, style, &flags) == B_OK ) {
|
||||||
|
BMessage *msg = new BMessage(MENU_FONT_STYLE);
|
||||||
|
msg->AddPointer("family", family);
|
||||||
|
msg->AddPointer("style", style);
|
||||||
|
fontStyleItem = new BMenuItem(*style, msg, 0, 0);
|
||||||
|
fontStyleMenu->AddItem(fontStyleItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BMessage *msg = new BMessage(MENU_FONT_FAMILY);
|
||||||
|
msg->AddPointer("family", family);
|
||||||
|
font_style *style = (font_style*)malloc(sizeof(font_style));
|
||||||
|
// if font family selected, we need to change style to
|
||||||
|
// first style
|
||||||
|
if ( get_font_style(*family, 0, style, &flags) == B_OK )
|
||||||
|
msg->AddPointer("style", style);
|
||||||
|
fontFamily = new BMenuItem(fontStyleMenu, msg);
|
||||||
|
AddItem(fontFamily);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
FontMenu::Update()
|
||||||
|
{
|
||||||
|
// it may be better to pull all menu prefs
|
||||||
|
// related stuff out of the FontMenu class
|
||||||
|
// so it can be easily reused in other apps
|
||||||
|
get_menu_info(&info);
|
||||||
|
|
||||||
|
// font menu
|
||||||
|
BFont font;
|
||||||
|
font.SetFamilyAndStyle(info.f_family, info.f_style);
|
||||||
|
font.SetSize(info.font_size);
|
||||||
|
SetFont(&font);
|
||||||
|
SetViewColor(info.background_color);
|
||||||
|
InvalidateLayout();
|
||||||
|
|
||||||
|
// font style menus
|
||||||
|
for (int i = 0; i < CountItems(); i++) {
|
||||||
|
ItemAt(i)->Submenu()->SetFont(&font);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClearAllMarkedItems();
|
||||||
|
PlaceCheckMarkOnFont(info.f_family, info.f_style);
|
||||||
|
}
|
||||||
|
|
||||||
|
status_t
|
||||||
|
FontMenu::PlaceCheckMarkOnFont(font_family family, font_style style)
|
||||||
|
{
|
||||||
|
BMenuItem *fontFamilyItem;
|
||||||
|
BMenuItem *fontStyleItem;
|
||||||
|
BMenu *styleMenu;
|
||||||
|
|
||||||
|
fontFamilyItem = FindItem(family);
|
||||||
|
|
||||||
|
if ((fontFamilyItem != NULL) && (family != NULL))
|
||||||
|
{
|
||||||
|
fontFamilyItem->SetMarked(true);
|
||||||
|
styleMenu = fontFamilyItem->Submenu();
|
||||||
|
|
||||||
|
if ((styleMenu != NULL) && (style != NULL))
|
||||||
|
{
|
||||||
|
fontStyleItem = styleMenu->FindItem(style);
|
||||||
|
|
||||||
|
if (fontStyleItem != NULL)
|
||||||
|
{
|
||||||
|
fontStyleItem->SetMarked(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return B_ERROR;
|
||||||
|
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
FontMenu::ClearAllMarkedItems()
|
||||||
|
{
|
||||||
|
// we need to clear all menuitems and submenuitems
|
||||||
|
for (int i = 0; i < CountItems(); i++) {
|
||||||
|
ItemAt(i)->SetMarked(false);
|
||||||
|
|
||||||
|
BMenu *submenu = ItemAt(i)->Submenu();
|
||||||
|
for (int j = 0; j < submenu->CountItems(); j++) {
|
||||||
|
submenu->ItemAt(j)->SetMarked(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef FONTMENU_H_
|
||||||
|
#define FONTMENU_H_
|
||||||
|
|
||||||
|
#include <Menu.h>
|
||||||
|
|
||||||
|
#define MENU_FONT_STYLE 'mnfs'
|
||||||
|
#define MENU_FONT_FAMILY 'mnff'
|
||||||
|
|
||||||
|
class FontMenu : public BMenu {
|
||||||
|
public:
|
||||||
|
FontMenu();
|
||||||
|
virtual ~FontMenu();
|
||||||
|
virtual void GetFonts();
|
||||||
|
virtual void Update();
|
||||||
|
virtual status_t PlaceCheckMarkOnFont(font_family family, font_style style);
|
||||||
|
virtual void ClearAllMarkedItems();
|
||||||
|
|
||||||
|
menu_info info;
|
||||||
|
BMenuItem *fontFamily;
|
||||||
|
BMenu *fontStyleMenu;
|
||||||
|
BMenuItem *fontStyleItem;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
@@ -10,6 +10,8 @@ Preference Appearance :
|
|||||||
APRWindow.cpp
|
APRWindow.cpp
|
||||||
CurView.cpp
|
CurView.cpp
|
||||||
DecView.cpp
|
DecView.cpp
|
||||||
|
FontMenu.cpp
|
||||||
|
MenuView.cpp
|
||||||
PreviewDriver.cpp
|
PreviewDriver.cpp
|
||||||
# SysCursorAPI.cpp
|
# SysCursorAPI.cpp
|
||||||
ColorWell.cpp
|
ColorWell.cpp
|
||||||
|
|||||||
@@ -0,0 +1,351 @@
|
|||||||
|
#include "MenuView.h"
|
||||||
|
#include <Roster.h>
|
||||||
|
#include <Message.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
|
||||||
|
#define TOGGLE_TRIGGERS 'tgtr'
|
||||||
|
#define ALT_COMMAND 'acmd'
|
||||||
|
#define CTRL_COMMAND 'ccmd'
|
||||||
|
#define SET_FONT_SIZE 'sfsz'
|
||||||
|
#define SET_DEFAULTS 'sdef'
|
||||||
|
#define REVERT_SETTINGS 'rvst'
|
||||||
|
|
||||||
|
MenuView::MenuView(BRect frame, const char *name, int32 resize, int32 flags)
|
||||||
|
: BView(frame,name, resize, flags)
|
||||||
|
{
|
||||||
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||||
|
|
||||||
|
get_menu_info(&menuinfo);
|
||||||
|
revertinfo=menuinfo;
|
||||||
|
revert=false;
|
||||||
|
|
||||||
|
fontmenu=new FontMenu;
|
||||||
|
fontmenu->SetLabelFromMarked(true);
|
||||||
|
fontmenu->GetFonts();
|
||||||
|
fontmenu->Update();
|
||||||
|
|
||||||
|
fontsizemenu=new BMenu("");
|
||||||
|
fontsizemenu->SetLabelFromMarked(true);
|
||||||
|
|
||||||
|
BMenuItem *item;
|
||||||
|
BMessage *msg;
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",10);
|
||||||
|
item=new BMenuItem("10",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",11);
|
||||||
|
item=new BMenuItem("11",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",12);
|
||||||
|
item=new BMenuItem("12",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",14);
|
||||||
|
item=new BMenuItem("14",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",18);
|
||||||
|
item=new BMenuItem("18",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",20);
|
||||||
|
item=new BMenuItem("20",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",22);
|
||||||
|
item=new BMenuItem("22",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",24);
|
||||||
|
item=new BMenuItem("24",msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
|
||||||
|
switch((int32)menuinfo.font_size)
|
||||||
|
{
|
||||||
|
case 10:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("10");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 11:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("11");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 12:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("12");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 14:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("14");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 18:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("18");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 20:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("20");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 22:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("22");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 24:
|
||||||
|
{
|
||||||
|
item=fontsizemenu->FindItem("24");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
char fontsizestr[10];
|
||||||
|
sprintf(fontsizestr,"%ld",(int32) menuinfo.font_size);
|
||||||
|
msg=new BMessage(SET_FONT_SIZE);
|
||||||
|
msg->AddInt32("size",(int32)menuinfo.font_size);
|
||||||
|
item=new BMenuItem(fontsizestr,msg);
|
||||||
|
fontsizemenu->AddItem(item);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item->SetMarked(true);
|
||||||
|
|
||||||
|
|
||||||
|
BRect r(10,10,210,40);
|
||||||
|
r.OffsetTo((Bounds().Width()-r.Width())/2,10);
|
||||||
|
fontfield=new BMenuField(r,"fontfield","",fontmenu);
|
||||||
|
fontfield->SetLabel("Font:");
|
||||||
|
fontfield->SetDivider(StringWidth("Font:")+5);
|
||||||
|
AddChild(fontfield);
|
||||||
|
|
||||||
|
r.OffsetTo((Bounds().Width()-r.Width())/2,fontfield->Frame().bottom+10);
|
||||||
|
fontsizefield=new BMenuField(r,"fontsizefield","",fontsizemenu);
|
||||||
|
fontsizefield->SetLabel("Font Size:");
|
||||||
|
fontsizefield->SetDivider(StringWidth("Font Size:")+5);
|
||||||
|
AddChild(fontsizefield);
|
||||||
|
|
||||||
|
r.OffsetTo(10, fontsizefield->Frame().bottom + 10);
|
||||||
|
r.right+=20;
|
||||||
|
showtriggers=new BCheckBox(r, "showtriggers", "Always Show Triggers",
|
||||||
|
new BMessage(TOGGLE_TRIGGERS));
|
||||||
|
showtriggers->ResizeToPreferred();
|
||||||
|
showtriggers->MoveTo( (Bounds().Width()-showtriggers->Bounds().Width())/2, r.top);
|
||||||
|
AddChild(showtriggers);
|
||||||
|
if(menuinfo.triggers_always_shown)
|
||||||
|
showtriggers->SetValue(B_CONTROL_ON);
|
||||||
|
|
||||||
|
r.bottom=r.top+75;
|
||||||
|
r.OffsetTo((Bounds().Width()-r.Width())/2,showtriggers->Frame().bottom+10);
|
||||||
|
BBox *radiobox=new BBox(r,"radiobox");
|
||||||
|
radiobox->SetLabel("Shortcut Key");
|
||||||
|
AddChild(radiobox);
|
||||||
|
|
||||||
|
r.Set(10,20,50,30);
|
||||||
|
altcmd=new BRadioButton(r,"altcommand","Alt", new BMessage(ALT_COMMAND));
|
||||||
|
altcmd->ResizeToPreferred();
|
||||||
|
radiobox->AddChild(altcmd);
|
||||||
|
|
||||||
|
r.OffsetBy(0,25);
|
||||||
|
ctrlcmd=new BRadioButton(r,"ctrlcommand","Control", new BMessage(CTRL_COMMAND));
|
||||||
|
ctrlcmd->ResizeToPreferred();
|
||||||
|
radiobox->AddChild(ctrlcmd);
|
||||||
|
|
||||||
|
MarkCommandKey();
|
||||||
|
revertaltcmd=altcommand;
|
||||||
|
|
||||||
|
defaultsbutton=new BButton(r, "defaultsbutton", "Defaults", new BMessage(SET_DEFAULTS));
|
||||||
|
defaultsbutton->ResizeToPreferred();
|
||||||
|
|
||||||
|
revertbutton=new BButton(r, "revertbutton", "Revert", new BMessage(REVERT_SETTINGS));
|
||||||
|
revertbutton->ResizeToPreferred();
|
||||||
|
|
||||||
|
|
||||||
|
defaultsbutton->MoveTo( (Bounds().Width()-
|
||||||
|
(defaultsbutton->Bounds().Width()+revertbutton->Bounds().Width()+10))/2,
|
||||||
|
radiobox->Frame().bottom+20);
|
||||||
|
revertbutton->MoveTo(defaultsbutton->Frame().right+10, radiobox->Frame().bottom+20);
|
||||||
|
|
||||||
|
AddChild(defaultsbutton);
|
||||||
|
AddChild(revertbutton);
|
||||||
|
revertbutton->SetEnabled(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MenuView::~MenuView(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuView::AttachedToWindow(void)
|
||||||
|
{
|
||||||
|
for(int32 i=0; i<fontmenu->CountItems(); i++)
|
||||||
|
{
|
||||||
|
BMenu *menu=fontmenu->SubmenuAt(i);
|
||||||
|
if(menu)
|
||||||
|
menu->SetTargetForItems(this);
|
||||||
|
}
|
||||||
|
fontmenu->SetTargetForItems(this);
|
||||||
|
fontsizemenu->SetTargetForItems(this);
|
||||||
|
showtriggers->SetTarget(this);
|
||||||
|
altcmd->SetTarget(this);
|
||||||
|
ctrlcmd->SetTarget(this);
|
||||||
|
defaultsbutton->SetTarget(this);
|
||||||
|
revertbutton->SetTarget(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuView::MessageReceived(BMessage *msg)
|
||||||
|
{
|
||||||
|
switch(msg->what)
|
||||||
|
{
|
||||||
|
case B_MODIFIERS_CHANGED:
|
||||||
|
{
|
||||||
|
MarkCommandKey();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MENU_FONT_FAMILY:
|
||||||
|
case MENU_FONT_STYLE:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
font_family *family;
|
||||||
|
msg->FindPointer("family", (void**)&family);
|
||||||
|
font_style *style;
|
||||||
|
msg->FindPointer("style", (void**)&style);
|
||||||
|
menuinfo.f_family = *family;
|
||||||
|
menuinfo.f_style = *style;
|
||||||
|
set_menu_info(&menuinfo);
|
||||||
|
|
||||||
|
fontmenu->Update();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SET_FONT_SIZE:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
int32 size;
|
||||||
|
msg->FindInt32("size", &size);
|
||||||
|
menuinfo.font_size = size;
|
||||||
|
set_menu_info(&menuinfo);
|
||||||
|
fontmenu->Update();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ALT_COMMAND:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
altcommand=true;
|
||||||
|
SetCommandKey(altcommand);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CTRL_COMMAND:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
altcommand=false;
|
||||||
|
SetCommandKey(altcommand);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TOGGLE_TRIGGERS:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
menuinfo.triggers_always_shown=(showtriggers->Value()==B_CONTROL_ON);
|
||||||
|
set_menu_info(&menuinfo);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case REVERT_SETTINGS:
|
||||||
|
{
|
||||||
|
revert=false;
|
||||||
|
revertbutton->SetEnabled(false);
|
||||||
|
SetCommandKey(revertaltcmd);
|
||||||
|
altcommand=revertaltcmd;
|
||||||
|
MarkCommandKey();
|
||||||
|
menuinfo=revertinfo;
|
||||||
|
fontmenu->Update();
|
||||||
|
showtriggers->SetValue( (menuinfo.triggers_always_shown)?B_CONTROL_ON:B_CONTROL_OFF);
|
||||||
|
set_menu_info(&revertinfo);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SET_DEFAULTS:
|
||||||
|
{
|
||||||
|
if(!revert)
|
||||||
|
revertbutton->SetEnabled(true);
|
||||||
|
revert=true;
|
||||||
|
|
||||||
|
menuinfo.triggers_always_shown=false;
|
||||||
|
menuinfo.font_size=12.0;
|
||||||
|
sprintf(menuinfo.f_family,"%s","Swis721 BT");
|
||||||
|
sprintf(menuinfo.f_style,"%s","Roman");
|
||||||
|
set_menu_info(&menuinfo);
|
||||||
|
|
||||||
|
fontmenu->Update();
|
||||||
|
altcommand=true;
|
||||||
|
SetCommandKey(altcommand);
|
||||||
|
MarkCommandKey();
|
||||||
|
showtriggers->SetValue( (menuinfo.triggers_always_shown)?B_CONTROL_ON:B_CONTROL_OFF);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
BView::MessageReceived(msg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuView::MarkCommandKey(void)
|
||||||
|
{
|
||||||
|
key_map *keys;
|
||||||
|
char *chars;
|
||||||
|
|
||||||
|
get_key_map(&keys, &chars);
|
||||||
|
|
||||||
|
altcommand=(keys->left_command_key==0x5d) && (keys->right_command_key==0x5f);
|
||||||
|
free(chars);
|
||||||
|
free(keys);
|
||||||
|
|
||||||
|
if(altcommand)
|
||||||
|
altcmd->SetValue(B_CONTROL_ON);
|
||||||
|
else
|
||||||
|
ctrlcmd->SetValue(B_CONTROL_ON);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuView::SetCommandKey(bool use_alt)
|
||||||
|
{
|
||||||
|
if(use_alt)
|
||||||
|
{
|
||||||
|
set_modifier_key(B_LEFT_COMMAND_KEY, 0x5d);
|
||||||
|
set_modifier_key(B_RIGHT_COMMAND_KEY, 0x5f);
|
||||||
|
set_modifier_key(B_LEFT_CONTROL_KEY, 0x5c);
|
||||||
|
set_modifier_key(B_RIGHT_OPTION_KEY, 0x60);
|
||||||
|
|
||||||
|
be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
set_modifier_key(B_LEFT_COMMAND_KEY, 0x5c);
|
||||||
|
set_modifier_key(B_RIGHT_COMMAND_KEY, 0x60);
|
||||||
|
set_modifier_key(B_LEFT_CONTROL_KEY, 0x5d);
|
||||||
|
set_modifier_key(B_RIGHT_OPTION_KEY, 0x5f);
|
||||||
|
|
||||||
|
be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#ifndef MENUVIEW_H_
|
||||||
|
#define MENUVIEW_H_
|
||||||
|
|
||||||
|
#include <Menu.h>
|
||||||
|
#include <MenuItem.h>
|
||||||
|
#include <MenuBar.h>
|
||||||
|
#include <MenuField.h>
|
||||||
|
#include <View.h>
|
||||||
|
#include <Button.h>
|
||||||
|
#include <RadioButton.h>
|
||||||
|
#include <Box.h>
|
||||||
|
#include <CheckBox.h>
|
||||||
|
#include "FontMenu.h"
|
||||||
|
|
||||||
|
class MenuView : public BView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MenuView(BRect frame, const char *name, int32 resize, int32 flags);
|
||||||
|
~MenuView(void);
|
||||||
|
void AttachedToWindow(void);
|
||||||
|
void MessageReceived(BMessage *msg);
|
||||||
|
void MarkCommandKey(void);
|
||||||
|
void SetCommandKey(bool use_alt);
|
||||||
|
private:
|
||||||
|
BMenuField *fontfield, *fontsizefield;
|
||||||
|
BMenu *fontsizemenu;
|
||||||
|
FontMenu *fontmenu;
|
||||||
|
BButton *defaultsbutton, *revertbutton;
|
||||||
|
BCheckBox *showtriggers;
|
||||||
|
BRadioButton *altcmd, *ctrlcmd;
|
||||||
|
menu_info menuinfo,revertinfo;
|
||||||
|
bool altcommand;
|
||||||
|
bool revert, revertaltcmd;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user