2003-07-24 19:42:03 +00:00
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
// Copyright (c) 2001-2002, OpenBeOS
|
|
|
|
//
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
// copy of this software and associated documentation files (the "Software"),
|
|
|
|
// to deal in the Software without restriction, including without limitation
|
|
|
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
// and/or sell copies of the Software, and to permit persons to whom the
|
|
|
|
// Software is furnished to do so, subject to the following conditions:
|
|
|
|
//
|
|
|
|
// The above copyright notice and this permission notice shall be included in
|
|
|
|
// all copies or substantial portions of the Software.
|
|
|
|
//
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
//
|
|
|
|
// File Name: APRWindow.cpp
|
|
|
|
// Author: DarkWyrm <bpmagic@columbus.rr.com>
|
|
|
|
// Description: basic Window class for Appearance
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//------------------------------------------------------------------------------
|
2002-08-20 14:27:07 +00:00
|
|
|
#include <Messenger.h>
|
2002-07-09 12:24:59 +00:00
|
|
|
#include "APRWindow.h"
|
|
|
|
#include "APRView.h"
|
2002-08-08 21:33:55 +00:00
|
|
|
#include "DecView.h"
|
2003-07-14 18:49:37 +00:00
|
|
|
#include "CurView.h"
|
2002-08-25 16:45:40 +00:00
|
|
|
#include "defs.h"
|
2003-11-19 01:42:57 +00:00
|
|
|
#include <ScrollView.h>
|
|
|
|
#include <ListItem.h>
|
2002-07-09 12:24:59 +00:00
|
|
|
|
|
|
|
APRWindow::APRWindow(BRect frame)
|
2002-08-20 14:27:07 +00:00
|
|
|
: BWindow(frame, "Appearance", B_TITLED_WINDOW,
|
|
|
|
B_NOT_RESIZABLE | B_NOT_ZOOMABLE, B_ALL_WORKSPACES )
|
2002-07-09 12:24:59 +00:00
|
|
|
{
|
2003-11-19 01:42:57 +00:00
|
|
|
BView *topview=new BView(Bounds(),"topview",B_FOLLOW_ALL,B_WILL_DRAW);
|
|
|
|
topview->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
|
|
|
AddChild(topview);
|
|
|
|
|
|
|
|
BRect r(10,10,110,Bounds().Height()-10);
|
2002-08-08 21:33:55 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
listview=new BListView(r,"prefslist");
|
|
|
|
topview->AddChild(listview);
|
|
|
|
listview->SetSelectionMessage(new BMessage(PREFS_CHOSEN));
|
2003-07-24 19:42:03 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
listview->AddItem(new BStringItem("Colors"));
|
|
|
|
listview->AddItem(new BStringItem("Cursors"));
|
|
|
|
listview->AddItem(new BStringItem("Decorators"));
|
|
|
|
|
|
|
|
|
|
|
|
r.Set(100,100,385,445);
|
|
|
|
r.OffsetTo(listview->Bounds().Width()+20,0);
|
|
|
|
r.right=Bounds().right;
|
2003-10-10 00:34:38 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
colors=new APRView(r,"Colors",B_FOLLOW_ALL, B_WILL_DRAW);
|
|
|
|
topview->AddChild(colors);
|
|
|
|
colors->Hide();
|
2002-08-08 21:33:55 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
// TODO: Finish CurView
|
|
|
|
cursors=new CurView(r,"Cursors",B_FOLLOW_ALL, B_WILL_DRAW);
|
|
|
|
topview->AddChild(cursors);
|
|
|
|
cursors->Hide();
|
2002-08-18 19:24:30 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
decorators=new DecView(r,"Decorator",B_FOLLOW_ALL, B_WILL_DRAW);
|
|
|
|
topview->AddChild(decorators);
|
|
|
|
decorators->Hide();
|
2003-10-05 21:54:24 +00:00
|
|
|
decorators->SetColors(*colors->currentset);
|
2003-11-19 01:42:57 +00:00
|
|
|
|
|
|
|
prefsviews[0]=colors;
|
|
|
|
prefsviews[1]=cursors;
|
|
|
|
prefsviews[2]=decorators;
|
|
|
|
|
|
|
|
listview->Select(0);
|
2002-07-09 12:24:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool APRWindow::QuitRequested()
|
|
|
|
{
|
|
|
|
be_app->PostMessage(B_QUIT_REQUESTED);
|
|
|
|
return(true);
|
|
|
|
}
|
2002-08-20 14:27:07 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
void APRWindow::MessageReceived(BMessage *msg)
|
2002-08-20 14:27:07 +00:00
|
|
|
{
|
2003-11-19 01:42:57 +00:00
|
|
|
switch(msg->what)
|
2002-08-20 14:27:07 +00:00
|
|
|
{
|
2003-11-19 01:42:57 +00:00
|
|
|
case SET_UI_COLORS:
|
|
|
|
{
|
|
|
|
decorators->SetColors(*colors->currentset);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case PREFS_CHOSEN:
|
|
|
|
{
|
2002-08-25 16:45:40 +00:00
|
|
|
|
2003-11-19 01:42:57 +00:00
|
|
|
int32 selectionindex=listview->CurrentSelection();
|
|
|
|
if(selectionindex==-1)
|
|
|
|
break;
|
|
|
|
|
|
|
|
for(int32 i=0; i<3; i++)
|
|
|
|
{
|
|
|
|
BView *v=prefsviews[i];
|
|
|
|
|
|
|
|
if(i!=selectionindex && !v->IsHidden())
|
|
|
|
v->Hide();
|
|
|
|
}
|
|
|
|
prefsviews[selectionindex]->Show();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
BWindow::MessageReceived(msg);
|
|
|
|
break;
|
|
|
|
}
|
2002-08-25 16:45:40 +00:00
|
|
|
}
|