Moved the "Defaults" and "Revert" button out of the MouseView and
into the MouseWindow class. The MouseView now only contains everything that's in the BBox (it now inherits from BBox). Joined the BoxView and the MouseView classes together - their separation was highly questionable done. I plan to put the mouse button view into its own class as well. The "Defaults" and "Revert" button are now font sensitive. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5947 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+106
-133
@@ -31,61 +31,19 @@
|
||||
#include "MouseBitmap.h"
|
||||
|
||||
|
||||
BoxView::BoxView(BRect rect, MouseView *mouseView)
|
||||
: BBox(rect, "mouse_box"),
|
||||
fMouseView(mouseView)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BoxView::MouseDown(BPoint where)
|
||||
{
|
||||
int32 index = fMouseView->mouseTypeMenu->IndexOf(fMouseView->mouseTypeMenu->FindMarked());
|
||||
|
||||
fMouseView->fCurrentButton = -1;
|
||||
if ((index == 0) && BRect(50,41,105,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 0;
|
||||
else if (index == 1) {
|
||||
if(BRect(50,41,77,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 0;
|
||||
else if (BRect(77,41,105,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 1;
|
||||
} else {
|
||||
if(BRect(50,41,68,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 0;
|
||||
else if (BRect(86,41,105,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 1;
|
||||
else if (BRect(68,41,86,73).Contains(where))
|
||||
fMouseView->fCurrentButton = 2;
|
||||
}
|
||||
|
||||
if (fMouseView->fCurrentButton >= 0) {
|
||||
int32 number = 0;
|
||||
switch (fMouseView->fCurrentMouseMap.button[fMouseView->fCurrentButton]) {
|
||||
case B_PRIMARY_MOUSE_BUTTON: number = 0; break;
|
||||
case B_SECONDARY_MOUSE_BUTTON: number = 1; break;
|
||||
case B_TERTIARY_MOUSE_BUTTON: number = 2; break;
|
||||
}
|
||||
fMouseView->mouseMapMenu->ItemAt(number)->SetMarked(true);
|
||||
ConvertToScreen(&where);
|
||||
fMouseView->mouseMapMenu->Go(where, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MouseView::MouseView(BRect rect)
|
||||
: BView(rect, "mouse_view", B_FOLLOW_ALL, B_WILL_DRAW | B_PULSE_NEEDED),
|
||||
: BBox(rect, "main_view"),
|
||||
fCurrentButton(-1),
|
||||
fButtons(0),
|
||||
fOldButtons(0)
|
||||
{
|
||||
ResizeTo(397 - 22, 293 - 55);
|
||||
// ToDo: fixed values for now
|
||||
|
||||
BTextControl *textcontrol;
|
||||
BMenuField *menufield;
|
||||
BRect frame;
|
||||
|
||||
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||
|
||||
fDoubleClickBitmap = BTranslationUtils::GetBitmap("double_click_bmap");
|
||||
if (!fDoubleClickBitmap) {
|
||||
printf("can't load double_click_bmap with BTranslationUtils::GetBitmap\n");
|
||||
@@ -113,25 +71,14 @@ MouseView::MouseView(BRect rect)
|
||||
fMouseDownBitmap = new BBitmap(mouseDownRect, B_CMAP8);
|
||||
fMouseDownBitmap->SetBits(kMouseDownBits, kMouseDownWidth*kMouseDownHeight + 30, 0, kMouseDownColorSpace);
|
||||
|
||||
// Add the "Default" button..
|
||||
frame.Set(10,259,85,279);
|
||||
defaultButton = new BButton(frame,"mouse_defaults","Defaults", new BMessage(BUTTON_DEFAULTS));
|
||||
AddChild(defaultButton);
|
||||
|
||||
// Add the "Revert" button...
|
||||
frame.Set(92,259,167,279);
|
||||
revertButton = new BButton(frame,"mouse_revert","Revert", new BMessage(BUTTON_REVERT));
|
||||
revertButton->SetEnabled(false);
|
||||
AddChild(revertButton);
|
||||
|
||||
// Create the main box for the controls...
|
||||
/* // Create the main box for the controls...
|
||||
frame = Bounds();
|
||||
frame.left = frame.left+11;
|
||||
frame.top = frame.top+11;
|
||||
frame.right = frame.right-11;
|
||||
frame.bottom = frame.bottom-44;
|
||||
fBox = new BoxView(frame, this);
|
||||
|
||||
*/
|
||||
// Add the "Mouse Type" pop up menu
|
||||
mouseTypeMenu = new BPopUpMenu("Mouse Type Menu");
|
||||
mouseTypeMenu->AddItem(new BMenuItem("1-Button", new BMessage(POPUP_MOUSE_TYPE)));
|
||||
@@ -142,7 +89,7 @@ MouseView::MouseView(BRect rect)
|
||||
menufield = new BMenuField(frame, "mouse_type", "Mouse type", mouseTypeMenu);
|
||||
menufield->SetDivider(menufield->Divider() - 29);
|
||||
menufield->SetAlignment(B_ALIGN_RIGHT);
|
||||
fBox->AddChild(menufield);
|
||||
AddChild(menufield);
|
||||
|
||||
// Add the "Focus follows mouse" pop up menu
|
||||
focusMenu = new BPopUpMenu("Focus Follows Mouse Menu");
|
||||
@@ -155,7 +102,7 @@ MouseView::MouseView(BRect rect)
|
||||
menufield = new BMenuField(frame, "Focus follows mouse", "Focus follows mouse", focusMenu);
|
||||
menufield->SetDivider(menufield->Divider() - 18);
|
||||
menufield->SetAlignment(B_ALIGN_RIGHT);
|
||||
fBox->AddChild(menufield);
|
||||
AddChild(menufield);
|
||||
|
||||
// Create the "Double-click speed slider...
|
||||
frame.Set(166, 11, 328, 50);
|
||||
@@ -164,7 +111,7 @@ MouseView::MouseView(BRect rect)
|
||||
dcSpeedSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
|
||||
dcSpeedSlider->SetHashMarkCount(5);
|
||||
dcSpeedSlider->SetLimitLabels("Slow","Fast");
|
||||
fBox->AddChild(dcSpeedSlider);
|
||||
AddChild(dcSpeedSlider);
|
||||
|
||||
// Create the "Mouse Speed" slider...
|
||||
frame.Set(166,76,328,125);
|
||||
@@ -173,7 +120,7 @@ MouseView::MouseView(BRect rect)
|
||||
mouseSpeedSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
|
||||
mouseSpeedSlider->SetHashMarkCount(7);
|
||||
mouseSpeedSlider->SetLimitLabels("Slow","Fast");
|
||||
fBox->AddChild(mouseSpeedSlider);
|
||||
AddChild(mouseSpeedSlider);
|
||||
|
||||
// Create the "Mouse Acceleration" slider...
|
||||
frame.Set(166,141,328,190);
|
||||
@@ -182,24 +129,57 @@ MouseView::MouseView(BRect rect)
|
||||
mouseAccSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
|
||||
mouseAccSlider->SetHashMarkCount(5);
|
||||
mouseAccSlider->SetLimitLabels("Slow","Fast");
|
||||
fBox->AddChild(mouseAccSlider);
|
||||
AddChild(mouseAccSlider);
|
||||
|
||||
// Create the "Double-click test area" text box...
|
||||
frame=fBox->Bounds();
|
||||
frame=Bounds();
|
||||
frame.left=frame.left+9;
|
||||
frame.right=frame.right-230;
|
||||
frame.top=frame.bottom-30;
|
||||
textcontrol = new BTextControl(frame,"double_click_test_area",NULL,"Double-click test area", new BMessage(DOUBLE_CLICK_TEST_AREA),B_FOLLOW_LEFT,B_WILL_DRAW);
|
||||
textcontrol->SetAlignment(B_ALIGN_LEFT,B_ALIGN_CENTER);
|
||||
fBox->AddChild(textcontrol);
|
||||
|
||||
AddChild(fBox);
|
||||
AddChild(textcontrol);
|
||||
|
||||
mouseMapMenu = new BPopUpMenu("Mouse Map Menu", true, true);
|
||||
mouseMapMenu->AddItem(new BMenuItem("1", new BMessage(POPUP_MOUSE_MAP)));
|
||||
mouseMapMenu->AddItem(new BMenuItem("2", new BMessage(POPUP_MOUSE_MAP)));
|
||||
mouseMapMenu->AddItem(new BMenuItem("3", new BMessage(POPUP_MOUSE_MAP)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MouseView::MouseDown(BPoint where)
|
||||
{
|
||||
int32 index = mouseTypeMenu->IndexOf(mouseTypeMenu->FindMarked());
|
||||
|
||||
fCurrentButton = -1;
|
||||
if ((index == 0) && BRect(50,41,105,73).Contains(where))
|
||||
fCurrentButton = 0;
|
||||
else if (index == 1) {
|
||||
if(BRect(50,41,77,73).Contains(where))
|
||||
fCurrentButton = 0;
|
||||
else if (BRect(77,41,105,73).Contains(where))
|
||||
fCurrentButton = 1;
|
||||
} else {
|
||||
if(BRect(50,41,68,73).Contains(where))
|
||||
fCurrentButton = 0;
|
||||
else if (BRect(86,41,105,73).Contains(where))
|
||||
fCurrentButton = 1;
|
||||
else if (BRect(68,41,86,73).Contains(where))
|
||||
fCurrentButton = 2;
|
||||
}
|
||||
|
||||
if (fCurrentButton >= 0) {
|
||||
int32 number = 0;
|
||||
switch (fCurrentMouseMap.button[fCurrentButton]) {
|
||||
case B_PRIMARY_MOUSE_BUTTON: number = 0; break;
|
||||
case B_SECONDARY_MOUSE_BUTTON: number = 1; break;
|
||||
case B_TERTIARY_MOUSE_BUTTON: number = 2; break;
|
||||
}
|
||||
mouseMapMenu->ItemAt(number)->SetMarked(true);
|
||||
ConvertToScreen(&where);
|
||||
mouseMapMenu->Go(where, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -238,105 +218,104 @@ MouseView::Draw(BRect updateFrame)
|
||||
{
|
||||
inherited::Draw(updateFrame);
|
||||
|
||||
fBox->SetHighColor(120,120,120);
|
||||
fBox->SetLowColor(255,255,255);
|
||||
SetHighColor(120,120,120);
|
||||
SetLowColor(255,255,255);
|
||||
// Line above the test area
|
||||
fBox->StrokeLine(BPoint(8,198),BPoint(149,198),B_SOLID_HIGH);
|
||||
fBox->StrokeLine(BPoint(8,199),BPoint(149,199),B_SOLID_LOW);
|
||||
StrokeLine(BPoint(8,198),BPoint(149,198),B_SOLID_HIGH);
|
||||
StrokeLine(BPoint(8,199),BPoint(149,199),B_SOLID_LOW);
|
||||
// Line above focus follows mouse
|
||||
fBox->StrokeLine(BPoint(164,198),BPoint(367,198),B_SOLID_HIGH);
|
||||
fBox->StrokeLine(BPoint(164,199),BPoint(367,199),B_SOLID_LOW);
|
||||
StrokeLine(BPoint(164,198),BPoint(367,198),B_SOLID_HIGH);
|
||||
StrokeLine(BPoint(164,199),BPoint(367,199),B_SOLID_LOW);
|
||||
// Line in the middle
|
||||
fBox->StrokeLine(BPoint(156,10),BPoint(156,230),B_SOLID_HIGH);
|
||||
fBox->StrokeLine(BPoint(157,11),BPoint(157,230),B_SOLID_LOW);
|
||||
StrokeLine(BPoint(156,10),BPoint(156,230),B_SOLID_HIGH);
|
||||
StrokeLine(BPoint(157,11),BPoint(157,230),B_SOLID_LOW);
|
||||
|
||||
// Draw the icons
|
||||
if(updateFrame.Intersects( // i have to add 10 pixels width and height, so weird
|
||||
if (updateFrame.Intersects( // i have to add 10 pixels width and height, so weird
|
||||
BRect(333,16,354+fDoubleClickBitmap->Bounds().Width(),
|
||||
165+fAccelerationBitmap->Bounds().Height()))) {
|
||||
fBox->DrawBitmapAsync(fDoubleClickBitmap,BPoint(344,16));
|
||||
fBox->DrawBitmapAsync(fSpeedBitmap,BPoint(333,90));
|
||||
fBox->DrawBitmapAsync(fAccelerationBitmap,BPoint(333,155));
|
||||
DrawBitmapAsync(fDoubleClickBitmap,BPoint(344,16));
|
||||
DrawBitmapAsync(fSpeedBitmap,BPoint(333,90));
|
||||
DrawBitmapAsync(fAccelerationBitmap,BPoint(333,155));
|
||||
}
|
||||
|
||||
|
||||
// Draw the mouse
|
||||
// i have to add 10 pixels width and height, so weird
|
||||
if(updateFrame.Intersects(BRect(50,41,60+kMouseWidth,51+kMouseHeight))) {
|
||||
fBox->SetDrawingMode(B_OP_OVER);
|
||||
if (updateFrame.Intersects(BRect(50,41,60+kMouseWidth,51+kMouseHeight))) {
|
||||
SetDrawingMode(B_OP_OVER);
|
||||
|
||||
// Draw the mouse top
|
||||
fBox->DrawBitmapAsync(fMouseBitmap,BPoint(50, 41));
|
||||
DrawBitmapAsync(fMouseBitmap,BPoint(50, 41));
|
||||
int32 index = mouseTypeMenu->IndexOf(mouseTypeMenu->FindMarked());
|
||||
if (index == 0) { // 1 button
|
||||
if (fButtons & fCurrentMouseMap.button[0]) {
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap,BPoint(50, 47));
|
||||
fBox->SetHighColor(64,64,64);
|
||||
DrawBitmapAsync(fMouseDownBitmap,BPoint(50, 47));
|
||||
SetHighColor(64,64,64);
|
||||
}
|
||||
} else if (index == 1) { // 2 button
|
||||
if ( fButtons & fCurrentMouseMap.button[0]) {
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap, BRect(0,0,27,28), BRect(50,47,77,75));
|
||||
fBox->SetHighColor(120,120,120);
|
||||
DrawBitmapAsync(fMouseDownBitmap, BRect(0,0,27,28), BRect(50,47,77,75));
|
||||
SetHighColor(120,120,120);
|
||||
} else
|
||||
fBox->SetHighColor(184,184,184);
|
||||
fBox->StrokeLine(BPoint(76,49),BPoint(76,71),B_SOLID_HIGH);
|
||||
SetHighColor(184,184,184);
|
||||
StrokeLine(BPoint(76,49),BPoint(76,71),B_SOLID_HIGH);
|
||||
|
||||
if (fButtons & fCurrentMouseMap.button[1]) {
|
||||
fBox->SetHighColor(120,120,120);
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap, BRect(27,0,54,28), BRect(77,47,104,75));
|
||||
SetHighColor(120,120,120);
|
||||
DrawBitmapAsync(fMouseDownBitmap, BRect(27,0,54,28), BRect(77,47,104,75));
|
||||
} else
|
||||
fBox->SetHighColor(255,255,255);
|
||||
fBox->StrokeLine(BPoint(78,49),BPoint(78,71),B_SOLID_HIGH);
|
||||
SetHighColor(255,255,255);
|
||||
StrokeLine(BPoint(78,49),BPoint(78,71),B_SOLID_HIGH);
|
||||
|
||||
if ((fButtons & fCurrentMouseMap.button[0]) || (fButtons & fCurrentMouseMap.button[1]))
|
||||
fBox->SetHighColor(48,48,48);
|
||||
SetHighColor(48,48,48);
|
||||
else
|
||||
fBox->SetHighColor(88,88,88);
|
||||
fBox->StrokeLine(BPoint(77,48),BPoint(77,72),B_SOLID_HIGH);
|
||||
SetHighColor(88,88,88);
|
||||
StrokeLine(BPoint(77,48),BPoint(77,72),B_SOLID_HIGH);
|
||||
|
||||
} else { // 3 button
|
||||
if ( fButtons & fCurrentMouseMap.button[0]) {
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap, BRect(0,0,18,28), BRect(50,47,68,75));
|
||||
fBox->SetHighColor(120,120,120);
|
||||
if (fButtons & fCurrentMouseMap.button[0]) {
|
||||
DrawBitmapAsync(fMouseDownBitmap, BRect(0,0,18,28), BRect(50,47,68,75));
|
||||
SetHighColor(120,120,120);
|
||||
} else
|
||||
fBox->SetHighColor(184,184,184);
|
||||
fBox->StrokeLine(BPoint(67,49),BPoint(67,71),B_SOLID_HIGH);
|
||||
SetHighColor(184,184,184);
|
||||
StrokeLine(BPoint(67,49),BPoint(67,71),B_SOLID_HIGH);
|
||||
|
||||
if (fButtons & fCurrentMouseMap.button[2]) {
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap, BRect(18,0,36,28), BRect(68,47,86,75));
|
||||
fBox->SetHighColor(120,120,120);
|
||||
DrawBitmapAsync(fMouseDownBitmap, BRect(18,0,36,28), BRect(68,47,86,75));
|
||||
SetHighColor(120,120,120);
|
||||
} else
|
||||
fBox->SetHighColor(184,184,184);
|
||||
fBox->StrokeLine(BPoint(85,49),BPoint(85,71),B_SOLID_HIGH);
|
||||
SetHighColor(184,184,184);
|
||||
StrokeLine(BPoint(85,49),BPoint(85,71),B_SOLID_HIGH);
|
||||
|
||||
if (fButtons & fCurrentMouseMap.button[2])
|
||||
fBox->SetHighColor(120,120,120);
|
||||
SetHighColor(120,120,120);
|
||||
else
|
||||
fBox->SetHighColor(255,255,255);
|
||||
fBox->StrokeLine(BPoint(69,49),BPoint(69,71),B_SOLID_HIGH);
|
||||
SetHighColor(255,255,255);
|
||||
StrokeLine(BPoint(69,49),BPoint(69,71),B_SOLID_HIGH);
|
||||
|
||||
if (fButtons & fCurrentMouseMap.button[1]) {
|
||||
fBox->DrawBitmapAsync(fMouseDownBitmap, BRect(36,0,54,28), BRect(86,47,104,75));
|
||||
fBox->SetHighColor(120,120,120);
|
||||
DrawBitmapAsync(fMouseDownBitmap, BRect(36,0,54,28), BRect(86,47,104,75));
|
||||
SetHighColor(120,120,120);
|
||||
} else
|
||||
fBox->SetHighColor(255,255,255);
|
||||
fBox->StrokeLine(BPoint(87,49),BPoint(87,71),B_SOLID_HIGH);
|
||||
SetHighColor(255,255,255);
|
||||
StrokeLine(BPoint(87,49),BPoint(87,71),B_SOLID_HIGH);
|
||||
|
||||
if ((fButtons & fCurrentMouseMap.button[0]) || (fButtons & fCurrentMouseMap.button[2]))
|
||||
fBox->SetHighColor(48,48,48);
|
||||
SetHighColor(48,48,48);
|
||||
else
|
||||
fBox->SetHighColor(88,88,88);
|
||||
fBox->StrokeLine(BPoint(68,48),BPoint(68,72),B_SOLID_HIGH);
|
||||
SetHighColor(88,88,88);
|
||||
StrokeLine(BPoint(68,48),BPoint(68,72),B_SOLID_HIGH);
|
||||
|
||||
if ((fButtons & fCurrentMouseMap.button[2]) || (fButtons & fCurrentMouseMap.button[1]))
|
||||
fBox->SetHighColor(48,48,48);
|
||||
SetHighColor(48,48,48);
|
||||
else
|
||||
fBox->SetHighColor(88,88,88);
|
||||
fBox->StrokeLine(BPoint(86,48),BPoint(86,72),B_SOLID_HIGH);
|
||||
|
||||
SetHighColor(88,88,88);
|
||||
StrokeLine(BPoint(86,48),BPoint(86,72),B_SOLID_HIGH);
|
||||
}
|
||||
|
||||
fBox->SetHighColor(32,32,32);
|
||||
fBox->SetFont(be_plain_font);
|
||||
SetHighColor(32,32,32);
|
||||
SetFont(be_plain_font);
|
||||
for(int32 i=0; i<index+1; i++) {
|
||||
char number[2] = "1";
|
||||
switch (fCurrentMouseMap.button[i]) {
|
||||
@@ -347,14 +326,14 @@ MouseView::Draw(BRect updateFrame)
|
||||
int32 offsets[][3] = { {75},
|
||||
{61, 88},
|
||||
{57, 92, 74} };
|
||||
fBox->MovePenTo(offsets[index][i], 65);
|
||||
fBox->DrawString(number);
|
||||
MovePenTo(offsets[index][i], 65);
|
||||
DrawString(number);
|
||||
}
|
||||
}
|
||||
|
||||
fBox->Sync();
|
||||
Sync();
|
||||
|
||||
fBox->SetDrawingMode(B_OP_COPY);
|
||||
SetDrawingMode(B_OP_COPY);
|
||||
}
|
||||
|
||||
|
||||
@@ -405,9 +384,3 @@ MouseView::Init()
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MouseView::SetRevertable(bool revertable)
|
||||
{
|
||||
revertButton->SetEnabled(revertable);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,16 +23,16 @@
|
||||
#include <PopUpMenu.h>
|
||||
|
||||
|
||||
class MouseView : public BView {
|
||||
class MouseView : public BBox {
|
||||
public:
|
||||
MouseView(BRect frame);
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
virtual void MouseDown(BPoint where);
|
||||
virtual void Draw(BRect frame);
|
||||
virtual void Pulse();
|
||||
|
||||
void Init();
|
||||
void SetRevertable(bool revertable);
|
||||
|
||||
BSlider *dcSpeedSlider, *mouseSpeedSlider, *mouseAccSlider;
|
||||
BPopUpMenu *mouseTypeMenu, *focusMenu, *mouseMapMenu;
|
||||
@@ -48,23 +48,10 @@ class MouseView : public BView {
|
||||
uint32 fOldButtons;
|
||||
|
||||
private:
|
||||
typedef BView inherited;
|
||||
|
||||
BBox *fBox;
|
||||
typedef BBox inherited;
|
||||
|
||||
BBitmap *fDoubleClickBitmap, *fSpeedBitmap, *fAccelerationBitmap;
|
||||
BBitmap *fMouseBitmap, *fMouseDownBitmap;
|
||||
|
||||
BButton *defaultButton, *revertButton;
|
||||
};
|
||||
|
||||
class BoxView : public BBox {
|
||||
public:
|
||||
BoxView(BRect frame, MouseView *mouseView);
|
||||
void MouseDown(BPoint where);
|
||||
|
||||
private:
|
||||
MouseView *fMouseView;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif /* MOUSE_VIEW_H */
|
||||
|
||||
@@ -34,9 +34,35 @@ MouseWindow::MouseWindow(BRect rect)
|
||||
: BWindow(rect, "Mouse", B_TITLED_WINDOW,
|
||||
B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS)
|
||||
{
|
||||
AddChild(fView = new MouseView(Bounds()));
|
||||
BView *view = new BView(Bounds(), "view", B_FOLLOW_ALL, 0);
|
||||
view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||
AddChild(view);
|
||||
|
||||
// Add the main settings view
|
||||
fView = new MouseView(Bounds().InsetBySelf(kBorderSpace + 1, kBorderSpace + 1));
|
||||
view->AddChild(fView);
|
||||
|
||||
// Add the "Default" button
|
||||
// (10,259,85,279);
|
||||
BRect rect(kBorderSpace, fView->Frame().bottom + kItemSpace + 2,
|
||||
kBorderSpace + 75, fView->Frame().bottom + 20);
|
||||
BButton *button = new BButton(rect, "defaults", "Defaults", new BMessage(BUTTON_DEFAULTS));
|
||||
button->ResizeToPreferred();
|
||||
view->AddChild(button);
|
||||
|
||||
// Add the "Revert" button
|
||||
//frame.Set(92,259,167,279);
|
||||
rect.OffsetBy(button->Bounds().Width() + kItemSpace, 0);
|
||||
fRevertButton = new BButton(rect, "revert", "Revert", new BMessage(BUTTON_REVERT));
|
||||
fRevertButton->SetEnabled(false);
|
||||
view->AddChild(fRevertButton);
|
||||
|
||||
SetPulseRate(100000);
|
||||
// we are using the pulse rate to scan pressed mouse
|
||||
// buttons and draw the selected imagery
|
||||
|
||||
ResizeTo(fView->Frame().right + kBorderSpace, button->Frame().bottom + kBorderSpace - 1);
|
||||
MoveTo(fSettings.WindowPosition());
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +97,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
fView->fCurrentMouseMap.button[2] = B_TERTIARY_MOUSE_BUTTON;
|
||||
set_mouse_map(&fView->fCurrentMouseMap);
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -86,7 +112,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
set_mouse_map(&fView->fMouseMap);
|
||||
get_mouse_map(&fView->fCurrentMouseMap);
|
||||
|
||||
fView->SetRevertable(false);
|
||||
SetRevertable(false);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -95,7 +121,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
if (err < B_OK)
|
||||
printf("error while setting mouse type : %s\n", strerror(err));
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -109,7 +135,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
}
|
||||
set_mouse_mode(mouse_mode);
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -121,7 +147,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
if (err < B_OK)
|
||||
printf("error while setting click speed : %s\n", strerror(err));
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -133,7 +159,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
if (err < B_OK)
|
||||
printf("error while setting mouse speed : %s\n", strerror(err));
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -145,7 +171,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
if (err < B_OK)
|
||||
printf("error while setting mouse acceleration : %s\n", strerror(err));
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -163,7 +189,7 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
if (err < B_OK)
|
||||
printf("error while setting mouse map : %s\n", strerror(err));
|
||||
|
||||
fView->SetRevertable(true);
|
||||
SetRevertable(true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -179,3 +205,11 @@ MouseWindow::MessageReceived(BMessage *message)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MouseWindow::SetRevertable(bool revertable)
|
||||
{
|
||||
fRevertButton->SetEnabled(revertable);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,23 +15,31 @@
|
||||
#ifndef MOUSE_WINDOW_H
|
||||
#define MOUSE_WINDOW_H
|
||||
|
||||
|
||||
#include <Window.h>
|
||||
#include <Button.h>
|
||||
|
||||
#include "MouseSettings.h"
|
||||
#include "MouseView.h"
|
||||
|
||||
class MouseView;
|
||||
|
||||
|
||||
class MouseWindow : public BWindow {
|
||||
public:
|
||||
MouseWindow(BRect rect);
|
||||
|
||||
bool QuitRequested();
|
||||
void MessageReceived(BMessage *message);
|
||||
virtual bool QuitRequested();
|
||||
virtual void MessageReceived(BMessage *message);
|
||||
|
||||
MouseSettings fSettings;
|
||||
void SetRevertable(bool revertable);
|
||||
|
||||
private:
|
||||
MouseSettings fSettings;
|
||||
BButton *fRevertButton;
|
||||
MouseView *fView;
|
||||
};
|
||||
|
||||
#endif
|
||||
#define kBorderSpace 10
|
||||
#define kItemSpace 7
|
||||
|
||||
#endif /* MOUSE_WINDOW_H */
|
||||
|
||||
Reference in New Issue
Block a user