* Minor code cleanup
* Added locale support to main window * Added layout sensitivity to main window git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36514 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -5,7 +5,7 @@ SimpleTest NetworkSetup :
|
|||||||
NetworkSetupWindow.cpp
|
NetworkSetupWindow.cpp
|
||||||
NetworkSetupProfile.cpp
|
NetworkSetupProfile.cpp
|
||||||
NetworkSetupAddOn.cpp
|
NetworkSetupAddOn.cpp
|
||||||
: be root $(TARGET_LIBSTDC++)
|
: be root $(TARGET_LIBSTDC++) liblocale.so
|
||||||
;
|
;
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src tests kits net preflet InterfacesAddOn ;
|
SubInclude HAIKU_TOP src tests kits net preflet InterfacesAddOn ;
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
#include <Application.h>
|
|
||||||
#include <Window.h>
|
|
||||||
#include <Alert.h>
|
#include <Alert.h>
|
||||||
|
#include <Application.h>
|
||||||
|
#include <Catalog.h>
|
||||||
|
#include <Locale.h>
|
||||||
|
#include <Window.h>
|
||||||
|
|
||||||
#include "NetworkSetupWindow.h"
|
#include "NetworkSetupWindow.h"
|
||||||
|
|
||||||
|
|
||||||
#define SOFTWARE_EDITOR "Haiku"
|
#define SOFTWARE_EDITOR "Haiku"
|
||||||
#define NAME "NetworkSettings"
|
#define NAME "NetworkSettings"
|
||||||
#define SOFTWARE_VERSION_LABEL "0.1.0 alpha"
|
#define SOFTWARE_VERSION_LABEL "0.1.0 alpha"
|
||||||
@@ -16,6 +19,8 @@ class Application : public BApplication
|
|||||||
Application();
|
Application();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
BCatalog fCatalog;
|
||||||
|
|
||||||
void ReadyToRun(void);
|
void ReadyToRun(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -32,6 +37,7 @@ int main()
|
|||||||
Application::Application()
|
Application::Application()
|
||||||
: BApplication(APPLICATION_SIGNATURE)
|
: BApplication(APPLICATION_SIGNATURE)
|
||||||
{
|
{
|
||||||
|
be_locale->GetAppCatalog(&fCatalog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,178 +1,106 @@
|
|||||||
|
#include "NetworkSetupAddOn.h"
|
||||||
|
#include "NetworkSetupWindow.h"
|
||||||
|
|
||||||
|
#include <Application.h>
|
||||||
|
#include <Catalog.h>
|
||||||
|
#include <GroupLayout.h>
|
||||||
|
#include <GroupLayoutBuilder.h>
|
||||||
|
#include <InterfaceKit.h>
|
||||||
|
#include <Locale.h>
|
||||||
|
#include <Roster.h>
|
||||||
|
#include <StorageKit.h>
|
||||||
|
#include <SupportKit.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <app/Application.h>
|
|
||||||
#include <app/Roster.h>
|
|
||||||
#include <InterfaceKit.h>
|
|
||||||
#include <StorageKit.h>
|
|
||||||
#include <SupportKit.h>
|
|
||||||
|
|
||||||
#include "NetworkSetupAddOn.h"
|
#undef TR_CONTEXT
|
||||||
#include "NetworkSetupWindow.h"
|
#define TR_CONTEXT "NetworkSetupWindow"
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------------------------
|
// --------------------------------------------------------------
|
||||||
NetworkSetupWindow::NetworkSetupWindow(const char *title)
|
NetworkSetupWindow::NetworkSetupWindow(const char *title)
|
||||||
:
|
:
|
||||||
BWindow(BRect(100, 100, 600, 600), title, B_TITLED_WINDOW,
|
BWindow(BRect(100, 100, 300, 300), title, B_TITLED_WINDOW,
|
||||||
B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS)
|
B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS)
|
||||||
{
|
{
|
||||||
BMenu *show_menu;
|
BMenu *showPopup = new BPopUpMenu("<please select me!>");
|
||||||
BMenu *profiles_menu;
|
_BuildShowMenu(showPopup, SHOW_MSG);
|
||||||
BMenuField *menu_field;
|
|
||||||
BBox *top_box, *bottom_box, *line; // *group
|
|
||||||
BButton *button;
|
|
||||||
BCheckBox *check;
|
|
||||||
BRect r;
|
|
||||||
float x, w, h;
|
|
||||||
float size, min_size = 360;
|
|
||||||
|
|
||||||
// TODO: cleanup this mess!
|
BBox *topDivider = new BBox(B_EMPTY_STRING);
|
||||||
show_menu = new BPopUpMenu("<please select me!>");
|
topDivider->SetBorder(B_PLAIN_BORDER);
|
||||||
_BuildShowMenu(show_menu, SHOW_MSG);
|
|
||||||
|
|
||||||
#define H_MARGIN 10
|
|
||||||
#define V_MARGIN 10
|
|
||||||
#define SMALL_MARGIN 3
|
|
||||||
|
|
||||||
// Resize the window to minimal width
|
|
||||||
ResizeTo(fMinAddonViewRect.Width() + 2 * H_MARGIN, Bounds().Height());
|
|
||||||
|
|
||||||
top_box = new BBox(Bounds(), NULL, B_FOLLOW_NONE,
|
|
||||||
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP,
|
|
||||||
B_PLAIN_BORDER);
|
|
||||||
AddChild(top_box);
|
|
||||||
|
|
||||||
r = top_box->Bounds();
|
|
||||||
r.InsetBy(H_MARGIN, V_MARGIN);
|
|
||||||
|
|
||||||
// ---- Profiles section
|
// ---- Profiles section
|
||||||
profiles_menu = new BPopUpMenu("<none>");
|
BMenu *profilesPopup = new BPopUpMenu("<none>");
|
||||||
menu_field = new BMenuField(r, "profiles_menu", PROFILE_LABEL,
|
_BuildProfilesMenu(profilesPopup, SELECT_PROFILE_MSG);
|
||||||
profiles_menu);
|
|
||||||
|
|
||||||
menu_field->SetFont(be_bold_font);
|
BMenuField *profilesMenuField = new BMenuField("profiles_menu",
|
||||||
menu_field->SetDivider(be_bold_font->StringWidth(PROFILE_LABEL "#"));
|
TR("Profile:"), profilesPopup);
|
||||||
top_box->AddChild(menu_field);
|
profilesMenuField->SetFont(be_bold_font);
|
||||||
menu_field->ResizeToPreferred();
|
|
||||||
menu_field->GetPreferredSize(&w, &h);
|
|
||||||
|
|
||||||
size = w;
|
BButton *button = new BButton("manage_profiles",
|
||||||
|
TR("Manage profiles" B_UTF8_ELLIPSIS),
|
||||||
button = new BButton(r, "manage_profiles", MANAGE_PROFILES_LABEL,
|
new BMessage(MANAGE_PROFILES_MSG));
|
||||||
new BMessage(MANAGE_PROFILES_MSG),
|
|
||||||
B_FOLLOW_TOP | B_FOLLOW_RIGHT);
|
|
||||||
button->GetPreferredSize(&w, &h);
|
|
||||||
button->ResizeToPreferred();
|
|
||||||
button->MoveTo(r.right - w, r.top);
|
|
||||||
top_box->AddChild(button);
|
|
||||||
|
|
||||||
size += SMALL_MARGIN + w;
|
|
||||||
|
|
||||||
min_size = max_c(min_size, (H_MARGIN + size + H_MARGIN));
|
|
||||||
|
|
||||||
r.top += h + V_MARGIN;
|
|
||||||
|
|
||||||
// ---- Separator line between Profiles section and Settings section
|
|
||||||
line = new BBox(BRect(r.left, r.top, r.right, r.top + 1), NULL,
|
|
||||||
B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP );
|
|
||||||
top_box->AddChild(line);
|
|
||||||
|
|
||||||
_BuildProfilesMenu(profiles_menu, SELECT_PROFILE_MSG);
|
|
||||||
|
|
||||||
r.top += 2 + V_MARGIN;
|
|
||||||
|
|
||||||
// ---- Settings section
|
// ---- Settings section
|
||||||
|
|
||||||
// Make the show popup field half the whole width and centered
|
// Make the show popup field half the whole width and centered
|
||||||
menu_field = new BMenuField(r, "show_menu", SHOW_LABEL, show_menu);
|
BMenuField *showMenuField = new BMenuField("show_menu",
|
||||||
menu_field->SetFont(be_bold_font);
|
TR("Show:"), showPopup);
|
||||||
menu_field->SetDivider(be_bold_font->StringWidth(SHOW_LABEL "#"));
|
showMenuField->SetFont(be_bold_font);
|
||||||
top_box->AddChild(menu_field);
|
|
||||||
|
|
||||||
menu_field->ResizeToPreferred();
|
fPanel = new BBox("showview_box");
|
||||||
menu_field->GetPreferredSize(&w, &h);
|
fPanel->SetBorder(B_NO_BORDER);
|
||||||
r.top += h+1 + V_MARGIN;
|
|
||||||
|
|
||||||
min_size = max_c(min_size, (H_MARGIN + w + H_MARGIN));
|
|
||||||
|
|
||||||
|
|
||||||
r = fMinAddonViewRect.OffsetByCopy(H_MARGIN, r.top);
|
|
||||||
fPanel = new BBox(r, "showview_box", B_FOLLOW_NONE,
|
|
||||||
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP,
|
|
||||||
B_PLAIN_BORDER);
|
|
||||||
top_box->AddChild(fPanel);
|
|
||||||
top_box->ResizeTo(Bounds().Width(), r.bottom + 1 + V_MARGIN);
|
|
||||||
|
|
||||||
// ---- Bottom globals buttons section
|
// ---- Bottom globals buttons section
|
||||||
r = Bounds();
|
BBox *bottomDivider = new BBox(B_EMPTY_STRING);
|
||||||
r.top = top_box->Frame().bottom + 1;
|
bottomDivider->SetBorder(B_PLAIN_BORDER);
|
||||||
bottom_box = new BBox(r, NULL, B_FOLLOW_NONE,
|
|
||||||
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP,
|
|
||||||
B_PLAIN_BORDER);
|
|
||||||
AddChild(bottom_box);
|
|
||||||
|
|
||||||
r.OffsetTo(0, 0);
|
BCheckBox *dontTouchCheckBox = new BCheckBox("dont_touch",
|
||||||
r.InsetBy(H_MARGIN, V_MARGIN);
|
TR("Prevent unwanted changes"), new BMessage(DONT_TOUCH_MSG));
|
||||||
|
dontTouchCheckBox->SetValue(B_CONTROL_ON);
|
||||||
check = new BCheckBox(r, "dont_touch", DONT_TOUCH_LABEL,
|
|
||||||
new BMessage(DONT_TOUCH_MSG),
|
|
||||||
B_FOLLOW_TOP | B_FOLLOW_LEFT);
|
|
||||||
check->GetPreferredSize(&w, &h);
|
|
||||||
check->ResizeToPreferred();
|
|
||||||
check->SetValue(B_CONTROL_ON);
|
|
||||||
check->MoveTo(H_MARGIN, r.top);
|
|
||||||
bottom_box->AddChild(check);
|
|
||||||
|
|
||||||
size = w;
|
fApplyNowButton = new BButton("apply_now", TR("Apply Now"),
|
||||||
|
new BMessage(APPLY_NOW_MSG));
|
||||||
|
|
||||||
button = new BButton(r, "apply_now", APPLY_NOW_LABEL,
|
fRevertButton = new BButton("revert", TR("Revert"),
|
||||||
new BMessage(APPLY_NOW_MSG),
|
new BMessage(REVERT_MSG));
|
||||||
B_FOLLOW_TOP | B_FOLLOW_RIGHT);
|
|
||||||
button->GetPreferredSize(&w, &h);
|
|
||||||
button->ResizeToPreferred();
|
|
||||||
x = r.right - w;
|
|
||||||
button->MoveTo(x, r.top);
|
|
||||||
bottom_box->AddChild(button);
|
|
||||||
|
|
||||||
fApplyNowButton = button;
|
|
||||||
|
|
||||||
size += SMALL_MARGIN + w;
|
|
||||||
|
|
||||||
button = new BButton(r, "revert", REVERT_LABEL, new BMessage(REVERT_MSG),
|
|
||||||
B_FOLLOW_TOP | B_FOLLOW_RIGHT);
|
|
||||||
|
|
||||||
button->GetPreferredSize(&w, &h);
|
|
||||||
button->ResizeToPreferred();
|
|
||||||
button->MoveTo(x - w - SMALL_MARGIN, r.top);
|
|
||||||
bottom_box->AddChild(button);
|
|
||||||
|
|
||||||
fRevertButton = button;
|
|
||||||
fRevertButton->SetEnabled(false);
|
fRevertButton->SetEnabled(false);
|
||||||
|
|
||||||
size += SMALL_MARGIN + w;
|
|
||||||
|
|
||||||
min_size = max_c(min_size, (H_MARGIN + size + H_MARGIN));
|
|
||||||
|
|
||||||
r.bottom = r.top + h;
|
|
||||||
r.InsetBy(-H_MARGIN, -V_MARGIN);
|
|
||||||
|
|
||||||
bottom_box->ResizeTo(Bounds().Width(), r.Height());
|
|
||||||
|
|
||||||
// Resize window to enclose top and bottom boxes
|
|
||||||
ResizeTo(Bounds().Width(), bottom_box->Frame().bottom);
|
|
||||||
|
|
||||||
// Enable boxes resizing modes
|
// Enable boxes resizing modes
|
||||||
top_box->SetResizingMode(B_FOLLOW_ALL);
|
|
||||||
fPanel->SetResizingMode(B_FOLLOW_ALL);
|
fPanel->SetResizingMode(B_FOLLOW_ALL);
|
||||||
bottom_box->SetResizingMode(B_FOLLOW_BOTTOM | B_FOLLOW_LEFT_RIGHT);
|
|
||||||
|
|
||||||
// Set default/minimal window size
|
// Build the layout
|
||||||
ResizeTo(min_size, Bounds().Height());
|
SetLayout(new BGroupLayout(B_VERTICAL));
|
||||||
SetSizeLimits(min_size, 20000, Bounds().Height(), 20000);
|
|
||||||
|
AddChild(BGroupLayoutBuilder(B_VERTICAL, 10)
|
||||||
|
.AddGroup(B_HORIZONTAL, 5)
|
||||||
|
.Add(profilesMenuField)
|
||||||
|
.AddGlue()
|
||||||
|
.Add(button)
|
||||||
|
.End()
|
||||||
|
.Add(topDivider)
|
||||||
|
.Add(showMenuField)
|
||||||
|
.Add(fPanel)
|
||||||
|
.Add(bottomDivider)
|
||||||
|
.AddGroup(B_HORIZONTAL, 5)
|
||||||
|
.Add(dontTouchCheckBox)
|
||||||
|
.Add(fRevertButton)
|
||||||
|
.Add(fApplyNowButton)
|
||||||
|
.End()
|
||||||
|
.SetInsets(10, 10, 10, 10)
|
||||||
|
);
|
||||||
|
|
||||||
|
topDivider->SetExplicitMaxSize(BSize(B_SIZE_UNSET, 1));
|
||||||
|
bottomDivider->SetExplicitMaxSize(BSize(B_SIZE_UNSET, 1));
|
||||||
|
fPanel->SetExplicitMinSize(BSize(fMinAddonViewRect.Width(),
|
||||||
|
fMinAddonViewRect.Height()));
|
||||||
|
|
||||||
fAddonView = NULL;
|
fAddonView = NULL;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -197,9 +125,6 @@ NetworkSetupWindow::MessageReceived(BMessage* msg)
|
|||||||
case NEW_PROFILE_MSG:
|
case NEW_PROFILE_MSG:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COPY_PROFILE_MSG:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DELETE_PROFILE_MSG: {
|
case DELETE_PROFILE_MSG: {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -285,11 +210,8 @@ NetworkSetupWindow::_BuildProfilesMenu(BMenu* menu, int32 msg_what)
|
|||||||
}
|
}
|
||||||
|
|
||||||
menu->AddSeparatorItem();
|
menu->AddSeparatorItem();
|
||||||
menu->AddItem(new BMenuItem(NEW_PROFILE_LABEL,
|
menu->AddItem(new BMenuItem(TR("New" B_UTF8_ELLIPSIS), new BMessage(NEW_PROFILE_MSG)));
|
||||||
new BMessage(NEW_PROFILE_MSG)));
|
menu->AddItem(new BMenuItem(TR("Delete"), new BMessage(DELETE_PROFILE_MSG)));
|
||||||
|
|
||||||
menu->AddItem(new BMenuItem(DELETE_PROFILE_LABEL,
|
|
||||||
new BMessage(DELETE_PROFILE_MSG)));
|
|
||||||
|
|
||||||
if (strlen(current_profile)) {
|
if (strlen(current_profile)) {
|
||||||
item = menu->FindItem(current_profile);
|
item = menu->FindItem(current_profile);
|
||||||
@@ -301,7 +223,6 @@ NetworkSetupWindow::_BuildProfilesMenu(BMenu* menu, int32 msg_what)
|
|||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,21 +4,6 @@
|
|||||||
|
|
||||||
#include <InterfaceKit.h>
|
#include <InterfaceKit.h>
|
||||||
|
|
||||||
#define PROFILE_LABEL "Profile:"
|
|
||||||
#define NEW_PROFILE_LABEL "New" B_UTF8_ELLIPSIS
|
|
||||||
#define COPY_PROFILE_LABEL "Copy" B_UTF8_ELLIPSIS
|
|
||||||
#define DELETE_PROFILE_LABEL "Delete"
|
|
||||||
|
|
||||||
#define MANAGE_PROFILES_LABEL "Manage profiles" B_UTF8_ELLIPSIS
|
|
||||||
|
|
||||||
#define SHOW_LABEL "Show:"
|
|
||||||
|
|
||||||
#define DONT_TOUCH_LABEL "Prevent unwanted changes"
|
|
||||||
#define SAVE_LABEL "Save"
|
|
||||||
#define HELP_LABEL "Help"
|
|
||||||
#define REVERT_LABEL "Revert"
|
|
||||||
#define APPLY_NOW_LABEL "Apply Now"
|
|
||||||
|
|
||||||
class NetworkSetupWindow : public BWindow
|
class NetworkSetupWindow : public BWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -42,6 +27,7 @@ class NetworkSetupWindow : public BWindow
|
|||||||
|
|
||||||
bool QuitRequested();
|
bool QuitRequested();
|
||||||
void MessageReceived(BMessage* msg);
|
void MessageReceived(BMessage* msg);
|
||||||
|
void AttachedToWindow();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _BuildProfilesMenu(BMenu* menu, int32 msg);
|
void _BuildProfilesMenu(BMenu* menu, int32 msg);
|
||||||
|
|||||||
Reference in New Issue
Block a user