Moving Deskbar options to a dedicated preferences window. Adding a preference application that simply tells Deskbar to open that window. Adjusting default settings Recent Folders from off to 10, and Auto-raise from on to off.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33363 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jonas Sundström
2009-09-29 21:47:45 +00:00
parent 920de8e31b
commit 21f3e082b1
12 changed files with 551 additions and 126 deletions
+4 -3
View File
@@ -68,9 +68,10 @@ SYSTEM_APPS = AboutSystem ActivityMonitor CharacterMap CodyCam DeskCalc DiskProb
PackageInstaller People PoorMan PowerStatus ProcessController Screenshot
ShowImage SoundRecorder StyledEdit Terminal TextSearch TV Workspaces
;
SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail
FileTypes Fonts Keyboard Keymap Locale Media Mouse Network OpenGL Printers
Screen ScreenSaver Sounds Time Touchpad <preference>Tracker VirtualMemory
SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations
<preference>Deskbar E-mail FileTypes Fonts Keyboard Keymap Locale Media
Mouse Network OpenGL Printers Screen ScreenSaver Sounds Time Touchpad
<preference>Tracker VirtualMemory
;
SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo
GLTeapot Haiku3d Mandelbrot Pairs Playground Pulse Sudoku Gradients
+29 -39
View File
@@ -51,8 +51,6 @@ All rights reserved.
# include <RosterPrivate.h>
#endif
#include "FavoritesConfig.h"
#include "icons.h"
#include "tracker_private.h"
#include "BarApp.h"
@@ -101,7 +99,7 @@ main()
TBarApp::TBarApp()
: BApplication(kDeskbarSignature),
fSettingsFile(NULL),
fConfigWindow(NULL)
fPreferencesWindow(NULL)
{
InitSettings();
InitIconPreloader();
@@ -164,9 +162,23 @@ TBarApp::~TBarApp()
bool
TBarApp::QuitRequested()
{
if (CurrentMessage() && CurrentMessage()->FindBool("shortcut"))
// don't allow user quitting
// don't allow user quitting
if (CurrentMessage() && CurrentMessage()->FindBool("shortcut")) {
// but allow quitting to hide fPreferencesWindow
int32 index = 0;
BWindow* window = NULL;
while ((window = WindowAt(index++)) != NULL) {
if (window == fPreferencesWindow) {
if (fPreferencesWindow->Lock()) {
if (fPreferencesWindow->IsActive())
fPreferencesWindow->PostMessage(B_QUIT_REQUESTED);
fPreferencesWindow->Unlock();
}
break;
}
}
return false;
}
// system quitting, call inherited to notify all loopers
fBarWindow->SaveSettings();
@@ -221,7 +233,7 @@ TBarApp::InitSettings()
settings.recentDocsCount = 10;
settings.timeShowSeconds = false;
settings.timeShowMil = false;
settings.recentFoldersCount = 0; // default is hidden
settings.recentFoldersCount = 10;
settings.timeShowEuro = false;
settings.alwaysOnTop = false;
settings.timeFullDate = false;
@@ -229,7 +241,7 @@ TBarApp::InitSettings()
settings.sortRunningApps = false;
settings.superExpando = false;
settings.expandNewTeams = false;
settings.autoRaise = true;
settings.autoRaise = false;
BPath dirPath;
const char *settingsFileName = "Deskbar_settings";
@@ -316,13 +328,7 @@ TBarApp::MessageReceived(BMessage *message)
break;
case kConfigShow:
if (message->FindInt32("count", &count) == B_OK)
fSettings.recentDocsCount = count;
break;
case kUpdateAppsCount:
if (message->FindInt32("count", &count) == B_OK)
fSettings.recentAppsCount = count;
ShowPreferencesWindow();
break;
case kShowBeMenu:
@@ -339,19 +345,17 @@ TBarApp::MessageReceived(BMessage *message)
}
break;
case msg_config_db:
ShowConfigWindow();
break;
case kConfigClose:
case kUpdateRecentCounts:
if (message->FindInt32("applications", &count) == B_OK)
fSettings.recentAppsCount = count;
if (message->FindInt32("folders", &count) == B_OK)
fSettings.recentFoldersCount = count;
if (message->FindInt32("documents", &count) == B_OK)
fSettings.recentDocsCount = count;
break;
fConfigWindow = NULL;
case kConfigClose:
fPreferencesWindow = NULL;
break;
case B_SOME_APP_LAUNCHED:
@@ -691,27 +695,13 @@ TBarApp::RemoveTeam(team_id team)
void
TBarApp::ShowConfigWindow()
TBarApp::ShowPreferencesWindow()
{
if (fConfigWindow)
fConfigWindow->Activate();
if (fPreferencesWindow)
fPreferencesWindow->Activate();
else {
// always start at top, could be cached and we could start
// where we left off.
BPath path;
find_directory (B_USER_DESKBAR_DIRECTORY, &path);
entry_ref startref;
get_ref_for_path(path.Path(), &startref);
fConfigWindow = new TFavoritesConfigWindow(BRect(0, 0, 320, 240),
#ifdef __HAIKU__
"Configure Deskbar Menu", false, B_ANY_NODE,
#else
"Configure Be Menu", false, B_ANY_NODE,
#endif
BMessenger(this), &startref,
fSettings.recentAppsCount, fSettings.recentDocsCount,
fSettings.recentFoldersCount);
fPreferencesWindow = new PreferencesWindow(BRect(0, 0, 320, 240));
fPreferencesWindow->Show();
}
}
+4 -7
View File
@@ -38,6 +38,7 @@ All rights reserved.
#include <Application.h>
#include <List.h>
#include "BarWindow.h"
#include "PreferencesWindow.h"
/* ------------------------------------ */
@@ -68,7 +69,6 @@ const uint32 msg_Mac = 'WcOS';
const uint32 msg_Be = 'Tabs';
const uint32 msg_AlwaysTop = 'TTop';
const uint32 msg_ToggleDraggers = 'TDra';
const uint32 msg_config_db = 'cnfg';
const uint32 msg_Unsubscribe = 'Unsb';
const uint32 msg_AddTeam = 'AdTm';
const uint32 msg_RemoveTeam = 'RmTm';
@@ -131,10 +131,6 @@ const uint32 kValidSettingsSize10 = sizeof(bool) + kValidSettingsSize9;
class TBarView;
class BFile;
namespace BPrivate {
class TFavoritesConfigWindow;
}
using namespace BPrivate;
class TBarApp : public BApplication {
@@ -163,7 +159,7 @@ class TBarApp : public BApplication {
void InitSettings();
void SaveSettings();
void ShowConfigWindow();
void ShowPreferencesWindow();
TBarWindow *fBarWindow;
BMessenger fSwitcherMessenger;
@@ -171,7 +167,7 @@ class TBarApp : public BApplication {
BFile *fSettingsFile;
desk_settings fSettings;
TFavoritesConfigWindow *fConfigWindow;
PreferencesWindow* fPreferencesWindow;
static BLocker sSubscriberLock;
static BList sBarTeamInfoList;
@@ -179,3 +175,4 @@ class TBarApp : public BApplication {
};
#endif // BAR_APP_H
+1
View File
@@ -134,6 +134,7 @@ class TBarView : public BView {
TExpandoMenuBar *ExpandoMenuBar() const;
TBarMenuBar *BarMenuBar() const;
friend class TBeMenu;
friend class PreferencesWindow;
private:
status_t SendDragMessage(const char *signature, entry_ref *ref = NULL);
+4 -77
View File
@@ -255,83 +255,10 @@ TBeMenu::AddStandardBeMenuItems()
AddItem(mountMenu);
#endif
// insert preferences menu
BMenu *subMenu = new BMenu("Deskbar Settings");
subMenu->SetEnabled(!dragging);
#ifdef __HAIKU__
item = new BMenuItem("Configure Deskbar Menu"B_UTF8_ELLIPSIS, new BMessage(msg_config_db));
#else
item = new BMenuItem("Configure Be Menu"B_UTF8_ELLIPSIS, new BMessage(msg_config_db));
#endif
item = new BMenuItem("Deskbar Preferences" B_UTF8_ELLIPSIS,
new BMessage(kConfigShow));
item->SetTarget(be_app);
subMenu->AddItem(item);
item = new BMenuItem("Always on Top", new BMessage(msg_AlwaysTop));
item->SetTarget(be_app);
// set checkbox based on current state of Deskbar's main window feel
if (BWindow *window = static_cast<TBarApp *>(be_app)->BarWindow())
item->SetMarked((window->Feel() & B_FLOATING_ALL_WINDOW_FEEL) != 0);
subMenu->AddItem(item);
item = new BMenuItem("Auto Raise", new BMessage(msg_AutoRaise));
item->SetTarget(be_app);
item->SetMarked(static_cast<TBarApp *>(be_app)->Settings()->autoRaise);
subMenu->AddItem(item);
item = new BMenuItem("Sort Running Applications", new BMessage(msg_sortRunningApps));
item->SetTarget(be_app);
item->SetMarked(static_cast<TBarApp *>(be_app)->Settings()->sortRunningApps);
subMenu->AddItem(item);
item = new BMenuItem("Tracker Always First", new BMessage(msg_trackerFirst));
item->SetTarget(be_app);
item->SetMarked(static_cast<TBarApp *>(be_app)->Settings()->trackerAlwaysFirst);
subMenu->AddItem(item);
subMenu->AddSeparatorItem();
TReplicantTray *replicantTray = ((TBarApp *)be_app)->BarView()->fReplicantTray;
item = new BMenuItem("24 Hour Clock", new BMessage(kMsgMilTime));
item->SetTarget(replicantTray);
item->SetEnabled(((TBarApp *)be_app)->BarView()->ShowingClock());
item->SetMarked(replicantTray->ShowingMiltime());
subMenu->AddItem(item);
item = new BMenuItem("Show Seconds", new BMessage(kMsgShowSeconds));
item->SetTarget(replicantTray);
item->SetEnabled(((TBarApp *)be_app)->BarView()->ShowingClock());
item->SetMarked(replicantTray->ShowingSeconds());
subMenu->AddItem(item);
item = new BMenuItem("European Date", new BMessage(kMsgEuroDate));
item->SetTarget(replicantTray);
item->SetEnabled(((TBarApp *)be_app)->BarView()->ShowingClock());
item->SetMarked(replicantTray->ShowingEuroDate());
subMenu->AddItem(item);
item = new BMenuItem("Full Date", new BMessage(kMsgFullDate));
item->SetTarget(replicantTray);
item->SetEnabled(replicantTray->CanShowFullDate());
item->SetMarked(replicantTray->ShowingFullDate());
subMenu->AddItem(item);
subMenu->AddSeparatorItem();
item = new BMenuItem("Show Application Expander", new BMessage(msg_superExpando));
item->SetTarget(be_app);
item->SetMarked(static_cast<TBarApp *>(be_app)->Settings()->superExpando);
subMenu->AddItem(item);
item = new BMenuItem("Expand New Applications", new BMessage(msg_expandNewTeams));
item->SetTarget(be_app);
item->SetMarked(static_cast<TBarApp *>(be_app)->Settings()->expandNewTeams);
item->SetEnabled(static_cast<TBarApp *>(be_app)->Settings()->superExpando);
subMenu->AddItem(item);
subMenu->SetFont(be_plain_font);
AddItem(subMenu);
AddItem(item);
#ifndef __HAIKU__
if ((modifiers() & (B_LEFT_SHIFT_KEY|B_LEFT_CONTROL_KEY|B_LEFT_COMMAND_KEY))
@@ -448,7 +375,7 @@ TBeMenu::ResetTargets()
break;
case msg_ToggleDraggers:
case msg_config_db:
case kConfigShow:
case msg_AlwaysTop:
case kMsgShowSeconds:
case kMsgMilTime:
+2
View File
@@ -3,6 +3,7 @@ SubDir HAIKU_TOP src apps deskbar ;
SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders app interface shared tracker ;
UsePrivateHeaders private shared ;
SubDirHdrs $(HAIKU_TOP) src kits tracker ;
AddResources Deskbar : Deskbar.rdef icon-freelogo.rdef icons.rdef ;
@@ -33,6 +34,7 @@ Application Deskbar :
CalendarMenuItem.cpp
DeskBarUtils.cpp
ExpandoMenuBar.cpp
PreferencesWindow.cpp
ShowHideMenuItem.cpp
StatusView.cpp
StatusViewShelf.cpp
+348
View File
@@ -0,0 +1,348 @@
/*
* Copyright 2009 Haiku, Inc.
* All Rights Reserved. Distributed under the terms of the MIT License.
*
* Authors:
* Jonas Sundström, [email protected]
*/
#include "PreferencesWindow.h"
#include <CheckBox.h>
#include <GroupLayout.h>
#include <LayoutBuilder.h>
#include <OpenWithTracker.h>
#include <RadioButton.h>
#include <SeparatorView.h>
#include <ctype.h>
#include "BarApp.h"
#include "StatusView.h"
PreferencesWindow::PreferencesWindow(BRect frame)
:
BWindow(frame, "Deskbar Preferences", B_TITLED_WINDOW, B_NOT_RESIZABLE
| B_AUTO_UPDATE_SIZE_LIMITS | B_NOT_ZOOMABLE)
{
// Controls
fMenuRecentDocuments = new BCheckBox("Recent Documents:",
new BMessage(kUpdateRecentCounts));
fMenuRecentApplications = new BCheckBox("Recent Applications:",
new BMessage(kUpdateRecentCounts));
fMenuRecentFolders = new BCheckBox("Recent Folders:",
new BMessage(kUpdateRecentCounts));
fMenuRecentDocumentCount = new BTextControl(NULL, NULL,
new BMessage(kUpdateRecentCounts));
fMenuRecentApplicationCount = new BTextControl(NULL, NULL,
new BMessage(kUpdateRecentCounts));
fMenuRecentFolderCount = new BTextControl(NULL, NULL,
new BMessage(kUpdateRecentCounts));
fAppsSort = new BCheckBox("Sort Running Applications",
new BMessage(msg_sortRunningApps));
fAppsSortTrackerFirst = new BCheckBox("Tracker Always First",
new BMessage(msg_trackerFirst));
fAppsShowExpanders = new BCheckBox("Show Application Expander",
new BMessage(msg_superExpando));
fAppsExpandNew = new BCheckBox("Expand New Applications",
new BMessage(msg_expandNewTeams));
fClock24Hours = new BCheckBox("24 Hour Clock", new BMessage(kMsgMilTime));
fClockSeconds = new BCheckBox("Show Seconds",
new BMessage(kMsgShowSeconds));
fClockEuropeanDate = new BCheckBox("European Date",
new BMessage(kMsgEuroDate));
fClockFullDate = new BCheckBox("Full Date", new BMessage(kMsgFullDate));
fWindowAlwaysOnTop = new BCheckBox("Always On Top",
new BMessage(msg_AlwaysTop));
fWindowAutoRaise = new BCheckBox("Auto-raise", new BMessage(msg_AutoRaise));
BTextView* docTextView = fMenuRecentDocumentCount->TextView();
BTextView* appTextView = fMenuRecentApplicationCount->TextView();
BTextView* folderTextView = fMenuRecentFolderCount->TextView();
for (int32 i = 0; i < 256; i++) {
if (!isdigit(i)) {
docTextView->DisallowChar(i);
appTextView->DisallowChar(i);
folderTextView->DisallowChar(i);
}
}
docTextView->SetMaxBytes(4);
appTextView->SetMaxBytes(4);
folderTextView->SetMaxBytes(4);
// Values
TBarApp* barApp = static_cast<TBarApp*>(be_app);
desk_settings* appSettings = barApp->Settings();;
fAppsSort->SetValue(appSettings->sortRunningApps);
fAppsSortTrackerFirst->SetValue(appSettings->trackerAlwaysFirst);
fAppsShowExpanders->SetValue(appSettings->superExpando);
fAppsExpandNew->SetValue(appSettings->expandNewTeams);
fMenuRecentDocuments->SetValue(false);
fMenuRecentApplications->SetValue(false);
fMenuRecentFolders->SetValue(false);
fMenuRecentDocumentCount->SetEnabled(false);
fMenuRecentApplicationCount->SetEnabled(false);
fMenuRecentFolderCount->SetEnabled(false);
int32 docCount = appSettings->recentDocsCount;
int32 appCount = appSettings->recentAppsCount;
int32 folderCount = appSettings->recentFoldersCount;
if (docCount > 0) {
fMenuRecentDocuments->SetValue(true);
fMenuRecentDocumentCount->SetEnabled(true);
}
if (appCount > 0) {
fMenuRecentApplications->SetValue(true);
fMenuRecentApplicationCount->SetEnabled(true);
}
if (folderCount > 0) {
fMenuRecentFolders->SetValue(true);
fMenuRecentFolderCount->SetEnabled(true);
}
BString docString;
BString appString;
BString folderString;
docString << docCount;
appString << appCount;
folderString << folderCount;
fMenuRecentDocumentCount->SetText(docString.String());
fMenuRecentApplicationCount->SetText(appString.String());
fMenuRecentFolderCount->SetText(folderString.String());
TReplicantTray* replicantTray = barApp->BarView()->fReplicantTray;
fClock24Hours->SetValue(replicantTray->ShowingMiltime());
fClockSeconds->SetValue(replicantTray->ShowingSeconds());
fClockEuropeanDate->SetValue(replicantTray->ShowingEuroDate());
fClockFullDate->SetValue(replicantTray->ShowingFullDate());
bool showingClock = barApp->BarView()->ShowingClock();
fClock24Hours->SetEnabled(showingClock);
fClockSeconds->SetEnabled(showingClock);
fClockEuropeanDate->SetEnabled(showingClock);
fClockFullDate->SetEnabled(replicantTray->CanShowFullDate());
fWindowAlwaysOnTop->SetValue(appSettings->alwaysOnTop);
fWindowAutoRaise->SetValue(appSettings->autoRaise);
_EnableDisableDependentItems();
// Targets
fAppsSort->SetTarget(be_app);
fAppsSortTrackerFirst->SetTarget(be_app);
fAppsExpandNew->SetTarget(be_app);
fClock24Hours->SetTarget(replicantTray);
fClockSeconds->SetTarget(replicantTray);
fClockEuropeanDate->SetTarget(replicantTray);
fClockFullDate->SetTarget(replicantTray);
fWindowAlwaysOnTop->SetTarget(be_app);
fWindowAutoRaise->SetTarget(be_app);
// Layout
fMenuBox = new BBox("fMenuBox");
fAppsBox = new BBox("fAppsBox");
fClockBox = new BBox("fClockBox");
fWindowBox = new BBox("fWindowBox");
BStringView* menuString = new BStringView(NULL, "Menu");
BStringView* appsString = new BStringView(NULL, "Applications");
BStringView* clockString = new BStringView(NULL, "Clock");
BStringView* windowString = new BStringView(NULL, "Window");
BFont font;
menuString->GetFont(&font);
font.SetFace(B_BOLD_FACE);
menuString->SetFont(&font, B_FONT_FACE);
appsString->SetFont(&font, B_FONT_FACE);
clockString->SetFont(&font, B_FONT_FACE);
windowString->SetFont(&font, B_FONT_FACE);
fMenuBox->SetLabel(menuString);
fAppsBox->SetLabel(appsString);
fClockBox->SetLabel(clockString);
fWindowBox->SetLabel(windowString);
BView* view;
view = BLayoutBuilder::Group<>()
.AddGroup(B_VERTICAL, 10)
.AddGroup(B_HORIZONTAL, 10)
.AddGroup(B_VERTICAL, 10)
.Add(fMenuRecentDocuments)
.Add(fMenuRecentFolders)
.Add(fMenuRecentApplications)
.End()
.AddGroup(B_VERTICAL, 10)
.Add(fMenuRecentDocumentCount)
.Add(fMenuRecentApplicationCount)
.Add(fMenuRecentFolderCount)
.End()
.End()
.Add(new BButton("Edit Menu" B_UTF8_ELLIPSIS,
new BMessage(kEditMenuInTracker)))
.SetInsets(14, 14, 14, 14)
.End()
.View();
fMenuBox->AddChild(view);
view = BLayoutBuilder::Group<>()
.AddGroup(B_VERTICAL, 10)
.Add(fAppsSort)
.Add(fAppsSortTrackerFirst)
.Add(fAppsShowExpanders)
.AddGroup(B_HORIZONTAL, 0)
.SetInsets(20, 0, 0, 0)
.Add(fAppsExpandNew)
.End()
.SetInsets(14, 14, 14, 14)
.End()
.View();
fAppsBox->AddChild(view);
view = BLayoutBuilder::Group<>()
.AddGroup(B_VERTICAL, 10)
.Add(fClock24Hours)
.Add(fClockSeconds)
.Add(fClockEuropeanDate)
.Add(fClockFullDate)
.SetInsets(14, 14, 14, 14)
.End()
.View();
fClockBox->AddChild(view);
view = BLayoutBuilder::Group<>()
.AddGroup(B_VERTICAL, 10)
.Add(fWindowAlwaysOnTop)
.Add(fWindowAutoRaise)
.SetInsets(14, 14, 14, 14)
.End()
.View();
fWindowBox->AddChild(view);
BLayoutBuilder::Group<>(this)
.AddGroup(B_VERTICAL, 10)
.Add(fMenuBox)
.Add(fWindowBox)
.Add(fAppsBox)
.Add(fClockBox)
.SetInsets(14, 14, 14, 14)
.End()
.End();
CenterOnScreen();
}
PreferencesWindow::~PreferencesWindow()
{
_UpdateRecentCounts();
be_app->PostMessage(kConfigClose);
}
void
PreferencesWindow::MessageReceived(BMessage* message)
{
switch (message->what) {
case kEditMenuInTracker:
OpenWithTracker(B_USER_DESKBAR_DIRECTORY);
break;
case kUpdateRecentCounts:
_UpdateRecentCounts();
break;
case msg_superExpando:
_EnableDisableDependentItems();
be_app->PostMessage(message);
break;
default:
BWindow::MessageReceived(message);
break;
}
}
void
PreferencesWindow::_UpdateRecentCounts()
{
BMessage message(kUpdateRecentCounts);
int32 docCount = atoi(fMenuRecentDocumentCount->Text());
int32 appCount = atoi(fMenuRecentApplicationCount->Text());
int32 folderCount = atoi(fMenuRecentFolderCount->Text());
if (docCount <= 0 || fMenuRecentDocuments->Value() == false)
message.AddInt32("documents", 0);
else
message.AddInt32("documents", docCount);
if (appCount <= 0 || fMenuRecentApplications->Value() == false)
message.AddInt32("applications", 0);
else
message.AddInt32("applications", appCount);
if (folderCount <= 0 || fMenuRecentFolders->Value() == false)
message.AddInt32("folders", 0);
else
message.AddInt32("folders", folderCount);
be_app->PostMessage(&message);
_EnableDisableDependentItems();
}
void
PreferencesWindow::_EnableDisableDependentItems()
{
if (fAppsShowExpanders->Value())
fAppsExpandNew->SetEnabled(true);
else
fAppsExpandNew->SetEnabled(false);
if (fMenuRecentDocuments->Value())
fMenuRecentDocumentCount->SetEnabled(true);
else
fMenuRecentDocumentCount->SetEnabled(false);
if (fMenuRecentApplications->Value())
fMenuRecentApplicationCount->SetEnabled(true);
else
fMenuRecentApplicationCount->SetEnabled(false);
if (fMenuRecentFolders->Value())
fMenuRecentFolderCount->SetEnabled(true);
else
fMenuRecentFolderCount->SetEnabled(false);
}
void
PreferencesWindow::WindowActivated(bool active)
{
if (!active && IsMinimized())
PostMessage(B_QUIT_REQUESTED);
}
+65
View File
@@ -0,0 +1,65 @@
/*
* Copyright 2009 Haiku, Inc.
* All Rights Reserved. Distributed under the terms of the MIT License.
*/
#ifndef _PREFERENCES_WINDOW_H
#define _PREFERENCES_WINDOW_H
#include <Box.h>
#include <Button.h>
#include <CheckBox.h>
#include <RadioButton.h>
#include <StringView.h>
#include <TextControl.h>
#include <Window.h>
const uint32 kConfigShow = 'show';
const uint32 kConfigClose = 'canc';
const uint32 kUpdateRecentCounts = 'upct';
const uint32 kEditMenuInTracker = 'mtrk';
class PreferencesWindow : public BWindow
{
public:
PreferencesWindow(BRect frame);
~PreferencesWindow();
virtual void MessageReceived(BMessage* message);
virtual void WindowActivated(bool active);
private:
void _UpdateRecentCounts();
void _EnableDisableDependentItems();
BBox* fMenuBox;
BBox* fAppsBox;
BBox* fClockBox;
BBox* fWindowBox;
BCheckBox* fMenuRecentDocuments;
BCheckBox* fMenuRecentApplications;
BCheckBox* fMenuRecentFolders;
BTextControl* fMenuRecentDocumentCount;
BTextControl* fMenuRecentApplicationCount;
BTextControl* fMenuRecentFolderCount;
BCheckBox* fAppsSort;
BCheckBox* fAppsSortTrackerFirst;
BCheckBox* fAppsShowExpanders;
BCheckBox* fAppsExpandNew;
BCheckBox* fClock24Hours;
BCheckBox* fClockSeconds;
BCheckBox* fClockEuropeanDate;
BCheckBox* fClockFullDate;
BCheckBox* fWindowAlwaysOnTop;
BCheckBox* fWindowAutoRaise;
};
#endif // _PREFERENCES_WINDOW_H
+2
View File
@@ -5,6 +5,7 @@ SubInclude HAIKU_TOP src preferences backgrounds ;
SubInclude HAIKU_TOP src preferences bluetooth ;
SubInclude HAIKU_TOP src preferences cpufrequency ;
SubInclude HAIKU_TOP src preferences datatranslations ;
SubInclude HAIKU_TOP src preferences deskbar ;
SubInclude HAIKU_TOP src preferences devices ;
#SubInclude HAIKU_TOP src preferences dun ;
SubInclude HAIKU_TOP src preferences filetypes ;
@@ -26,3 +27,4 @@ SubInclude HAIKU_TOP src preferences time ;
SubInclude HAIKU_TOP src preferences touchpad ;
SubInclude HAIKU_TOP src preferences tracker ;
SubInclude HAIKU_TOP src preferences virtualmemory ;
@@ -0,0 +1,23 @@
/*
* Copyright 2009, Haiku Inc.
* Distributed under the terms of the MIT License.
*
* Authors:
* Jonas Sundström, [email protected]
*/
#include "PreferencesWindow.h"
#include <Application.h>
#include <Roster.h>
int
main(int argc, char **argv)
{
BApplication app("application/x-vnd.Haiku-DeskbarPreferences");
be_roster->Launch("application/x-vnd.Be-TSKB", new BMessage(kConfigShow));
return 0;
}
@@ -0,0 +1,59 @@
resource app_signature "application/x-vnd.Haiku-DeskbarPreferences";
resource app_version {
major = 1,
middle = 0,
minor = 0,
/* 0 = development 1 = alpha 2 = beta
3 = gamma 4 = golden master 5 = final */
variety = 0,
internal = 0,
short_info = "Deskbar Preferences",
long_info = "Deskbar Preferences ©2009 Haiku Inc."
};
resource app_flags B_SINGLE_LAUNCH | B_BACKGROUND_APP;
resource vector_icon {
$"6E6369661C050004006B020006023A498437D931BA09203C6B6D4B49E74A11B7"
$"01663300FF9B663203603307020006023393B0B84A2E3B59D6369E0646DFD84A"
$"A888007C3F03FF66330003CB986702000602B2F596355C9ABD515DBAEBB14A33"
$"354A96BF00A8733FFFD69E6803986432020006023E20000000000000003D8000"
$"49C00046000000FFEDDCFFFFCB98020006023A498437D931BA09203C6B6D4B39"
$"E749636E0089511AFF98622D05FF020116023C0F0A0000000000003C2F0A4AB5"
$"5C4766660080FF000201160338A28F00000000000038228F4AE1D748575C00FF"
$"54FFFF80020016023400000000000000003800004B0000478D1E00FFFF800201"
$"06023C7FE93652B8B419503A42244A941840DDAF0000FF00FF108E35050003EC"
$"666603FFACAC02000602391C19387422BA98E03B4AAA4B7CB44814B800A3043C"
$"FFFF90AF0500020016023B36393B4D9CBB8E093B74DE49CD5749A86B00EDFFA5"
$"05FF0200160232A2B43A4A46BDFF62364CDF49944E49622E0091FFB502001602"
$"3A77F53CD3D5BF3B3C3CD23D4AD98548BAB300FFFFE90200060234298D3A09A0"
$"BB2AE6355C88480B804842B500FFEA00FFFFB8300381A4E40200060239F67037"
$"5210BA15E43C7D2149DBC6B9D8AC00E3EDFFFF9EC2FF030039B01C0A032E5438"
$"54384A0A0746605A4A5A47604A5A5258524C6008092638264E2E52364A3A4C3A"
$"58465E5A495A390A062234223748485E375E3438280A04465E5A495A3846490A"
$"05382822344844C5C2BF4AC878B9F20A032E462E52364A0A083A5846CBAD46C2"
$"8926BD5B264E2E522E463AC4870A04465446523A4C3A4E0A0428C2772CC3432C"
$"C42728C35B0A0429C38E2CC4272CC4A529C40C0A04484448485E375E340A0422"
$"342237484848440A074E3EC631BEF95E34C887B9F73E363E3B463B0A062E282E"
$"343A394232422636B3F20A042E282E343A393A2C0A042E283A2C422636B3F20A"
$"043A2C3A39423242260A06422C42384E3D5636562A4AB58A0A04422C42384E3D"
$"4E300A04422C4E30562A4AB58A0A044E304E3D5636562A0A0622483A523A392C"
$"352C30222E0A04223222483A523A390A06374D25462447384F383B373D0A0624"
$"35244725462537373D383B0A0425372546374D373D0A04222E22332C362C302D"
$"0A01020100000A0001021001178400040A020104000A040106000A060107000A"
$"070108000A03010928362215FF0A03010928362C15FF0A08010A28362215FF0A"
$"08010A28362C15FF0A0001031815FF01178400040A0001031800150117860004"
$"0A080105000A05010C000A09010B000A0500000A0A00000A0000000A0400000A"
$"05010D000A0B001001178400040A0C00000A0D00000A00001815FF0117840204"
$"0A000018001501178502040A0E00000A0F010E1001178400040A19010F000A1B"
$"0111000A1A0110000A0F01121001178400040A100113000A120115000A110114"
$"000A13011630241801178402040A1401172024180A1501182024180A16011920"
$"24180A18011B2024180A1301161001178402040A140117000A150118000A1601"
$"19000A17011A000A18011B00"
};
+10
View File
@@ -0,0 +1,10 @@
SubDir HAIKU_TOP src preferences deskbar ;
SubDirSysHdrs $(HAIKU_TOP) src apps deskbar ;
Preference <preference>Deskbar :
DeskbarPreferences.cpp
: be
: DeskbarPreferences.rdef
;