- Cleanup to match coding guidelines. The header cleanup might have been

overkill.
- Updating some copyright years.
- ResizerWindow.h was not self-contained.

Some of the other files were skipped due to complexity and planned code changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32296 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ryan Leavengood
2009-08-13 07:28:11 +00:00
parent 01c8294cc7
commit 8c1ad886ee
17 changed files with 446 additions and 531 deletions
+30 -39
View File
@@ -1,48 +1,33 @@
/*****************************************************************************/
// EntryMenuItem
// Written by Michael Pfeiffer
//
// EntryMenuItem.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, [email protected]
*/
#include "EntryMenuItem.h"
#include <Node.h>
#include <NodeInfo.h>
#include "EntryMenuItem.h"
EntryMenuItem::EntryMenuItem(entry_ref* ref, const char* label, BMessage* message, char shortcut, uint32 modifiers)
: BMenuItem(label, message, shortcut, modifiers)
, fEntry(*ref)
, fSmallIcon(NULL)
EntryMenuItem::EntryMenuItem(entry_ref* ref, const char* label,
BMessage* message, char shortcut, uint32 modifiers)
:
BMenuItem(label, message, shortcut, modifiers),
fEntry(*ref),
fSmallIcon(NULL)
{
}
EntryMenuItem::~EntryMenuItem()
{
delete fSmallIcon;
}
void
EntryMenuItem::GetContentSize(float* width, float* height)
{
@@ -53,6 +38,7 @@ EntryMenuItem::GetContentSize(float* width, float* height)
}
}
void
EntryMenuItem::DrawContent()
{
@@ -60,7 +46,7 @@ EntryMenuItem::DrawContent()
BPoint pos(view->PenLocation());
if (fSmallIcon == NULL) {
fSmallIcon = LoadIcon(); // load on demand
fSmallIcon = LoadIcon(); // Load on demand
}
view->MovePenBy(kTextIndent, 0);
@@ -72,17 +58,20 @@ EntryMenuItem::DrawContent()
}
}
BBitmap*
EntryMenuItem::GetIcon(BMimeType* mimeType)
{
BBitmap* icon;
icon = new BBitmap(BRect(0, 0, kIconSize-1, kIconSize-1), B_CMAP8);
icon = new BBitmap(BRect(0, 0, kIconSize - 1, kIconSize - 1), B_CMAP8);
if (mimeType->GetIcon(icon, B_MINI_ICON) != B_OK) {
delete icon; icon = NULL;
delete icon;
icon = NULL;
}
return icon;
}
BBitmap*
EntryMenuItem::LoadIcon()
{
@@ -93,20 +82,21 @@ EntryMenuItem::LoadIcon()
// Note: BNodeInfo::GetTrackerIcon does not work as expected!
// try to get the icon stored in file attribute
// Try to get the icon stored in file attribute
icon = new BBitmap(BRect(0, 0, kIconSize-1, kIconSize-1), B_CMAP8);
if (info.GetIcon(icon, B_MINI_ICON) == B_OK) {
return icon;
}
delete icon; icon = NULL;
delete icon;
icon = NULL;
// get the icon from type
// Get the icon from type
if (info.GetType(type) == B_OK) {
BMimeType mimeType(type);
BMimeType superType;
if (mimeType.InitCheck() == B_OK) {
icon = GetIcon(&mimeType);
// or super type
// Or super type
if (icon == NULL && mimeType.GetSupertype(&superType) == B_OK) {
icon = GetIcon(&superType);
}
@@ -115,3 +105,4 @@ EntryMenuItem::LoadIcon()
return icon;
}
+25 -42
View File
@@ -1,59 +1,42 @@
/*****************************************************************************/
// EntryMenuItem
// Written by Michael Pfeiffer
//
// EntryMenuItem.h
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, [email protected]
*/
#ifndef ENTRY_MENU_ITEM_H
#define ENTRY_MENU_ITEM_H
#ifndef _EntryMenuItem_h
#define _EntryMenuItem_h
#include <Bitmap.h>
#include <Entry.h>
#include <MenuItem.h>
#include <Mime.h>
class EntryMenuItem : public BMenuItem
{
class EntryMenuItem : public BMenuItem {
public:
EntryMenuItem(entry_ref* entry, const char* label, BMessage* message, char shortcut = 0, uint32 modifiers = 0);
~EntryMenuItem();
EntryMenuItem(entry_ref* entry, const char* label,
BMessage* message, char shortcut = 0, uint32 modifiers = 0);
~EntryMenuItem();
void GetContentSize(float* width, float* height);
void DrawContent();
void GetContentSize(float* width, float* height);
void DrawContent();
private:
BBitmap* GetIcon(BMimeType* mimeType);
BBitmap* LoadIcon();
entry_ref fEntry;
BBitmap* fSmallIcon;
enum {
kIconSize = 16,
kTextIndent = kIconSize + 4,
};
BBitmap* GetIcon(BMimeType* mimeType);
BBitmap* LoadIcon();
entry_ref fEntry;
BBitmap* fSmallIcon;
};
#endif
#endif // ENTRY_MENU_ITEM_H
+74 -58
View File
@@ -1,55 +1,41 @@
/*****************************************************************************/
// PrintOptionsWindow
// Written by Michael Pfeiffer
//
// PrintOptionsWindow.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, [email protected]
*/
#include "PrintOptionsWindow.h"
#include <stdio.h> // for sprintf
#include <stdlib.h> // for atof
#include <Box.h>
#include <Button.h>
#include <String.h>
#include <stdio.h> // for sprintf
#include <stdlib.h> // for atof
#include "PrintOptionsWindow.h"
#include "ShowImageConstants.h"
PrintOptions::PrintOptions()
: fOption(kFitToPage)
, fZoomFactor(1.0)
, fDPI(72.0)
, fWidth(1024 / 72.0)
, fHeight(768 / 72.0)
:
fOption(kFitToPage),
fZoomFactor(1.0),
fDPI(72.0),
fWidth(1024/72.0),
fHeight(768/72.0)
{
}
void
PrintOptions::SetBounds(BRect rect)
{
fBounds = rect;
}
void
PrintOptions::SetZoomFactor(float f)
{
@@ -57,6 +43,7 @@ PrintOptions::SetZoomFactor(float f)
fDPI = 72.0 / fZoomFactor;
}
void
PrintOptions::SetDPI(float dpi)
{
@@ -64,13 +51,15 @@ PrintOptions::SetDPI(float dpi)
fZoomFactor = 72.0 / dpi;
}
void
PrintOptions::SetWidth(float w)
{
fWidth = w;
fHeight = (fBounds.Height()+1) * w / (fBounds.Width()+1);
fHeight = (fBounds.Height() + 1) * w / (fBounds.Width() + 1);
}
void
PrintOptions::SetHeight(float h)
{
@@ -78,20 +67,24 @@ PrintOptions::SetHeight(float h)
fHeight = h;
}
PrintOptionsWindow::PrintOptionsWindow(BPoint at, PrintOptions *options, BWindow* listener)
: BWindow(BRect(at.x, at.y, at.x+300, at.y+200), "Print Options",
B_TITLED_WINDOW_LOOK, B_MODAL_SUBSET_WINDOW_FEEL,
B_NOT_ZOOMABLE | B_NOT_RESIZABLE)
, fPrintOptions(options)
, fCurrentOptions(*options)
, fListener(listener)
, fStatus(B_ERROR)
PrintOptionsWindow::PrintOptionsWindow(BPoint at, PrintOptions *options,
BWindow* listener)
:
BWindow(BRect(at.x, at.y, at.x + 300, at.y + 200), "Print Options",
B_TITLED_WINDOW_LOOK, B_MODAL_SUBSET_WINDOW_FEEL,
B_NOT_ZOOMABLE | B_NOT_RESIZABLE),
fPrintOptions(options),
fCurrentOptions(*options),
fListener(listener),
fStatus(B_ERROR)
{
AddToSubset(listener);
Setup();
Show();
}
PrintOptionsWindow::~PrintOptionsWindow()
{
BMessage msg(MSG_PRINT);
@@ -99,8 +92,10 @@ PrintOptionsWindow::~PrintOptionsWindow()
fListener.SendMessage(&msg);
}
BRadioButton*
PrintOptionsWindow::AddRadioButton(BView* view, BPoint& at, const char* name, const char* label, uint32 what, bool selected)
PrintOptionsWindow::AddRadioButton(BView* view, BPoint& at, const char* name,
const char* label, uint32 what, bool selected)
{
BRect rect(0, 0, 100, 20);
BRadioButton* button;
@@ -113,8 +108,10 @@ PrintOptionsWindow::AddRadioButton(BView* view, BPoint& at, const char* name, co
return button;
}
BTextControl*
PrintOptionsWindow::AddTextControl(BView* view, BPoint& at, const char* name, const char* label, float value, float divider, uint32 what)
PrintOptionsWindow::AddTextControl(BView* view, BPoint& at, const char* name,
const char* label, float value, float divider, uint32 what)
{
BRect rect(0, 0, divider + 45, 20);
BTextControl* text;
@@ -129,6 +126,7 @@ PrintOptionsWindow::AddTextControl(BView* view, BPoint& at, const char* name, co
return text;
}
void
PrintOptionsWindow::Setup()
{
@@ -145,24 +143,33 @@ PrintOptionsWindow::Setup()
B_PLAIN_BORDER);
AddChild(panel);
AddRadioButton(panel, at, "fit_to_page", "Fit Image to Page", kMsgFitToPageSelected, op == PrintOptions::kFitToPage);
AddRadioButton(panel, at, "fit_to_page", "Fit Image to Page",
kMsgFitToPageSelected, op == PrintOptions::kFitToPage);
textAt = at;
rb = AddRadioButton(panel, at, "zoom_factor", "Zoom Factor in %: ", kMsgZoomFactorSelected, op == PrintOptions::kZoomFactor);
rb = AddRadioButton(panel, at, "zoom_factor", "Zoom Factor in %: ",
kMsgZoomFactorSelected, op == PrintOptions::kZoomFactor);
textAt.x = rb->Bounds().right + 5;
fZoomFactor = AddTextControl(panel, textAt, "zoom_factor_text", "", fCurrentOptions.ZoomFactor()*100, 0, kMsgZoomFactorChanged);
fZoomFactor = AddTextControl(panel, textAt, "zoom_factor_text", "",
fCurrentOptions.ZoomFactor()*100, 0, kMsgZoomFactorChanged);
textAt = at;
rb = AddRadioButton(panel, at, "dpi", "DPI: ", kMsgDPISelected, op == PrintOptions::kDPI);
rb = AddRadioButton(panel, at, "dpi", "DPI: ", kMsgDPISelected,
op == PrintOptions::kDPI);
textAt.x = rb->Bounds().right + 5;
fDPI = AddTextControl(panel, textAt, "dpi_text", "", fCurrentOptions.DPI(), 0, kMsgDPIChanged);
fDPI = AddTextControl(panel, textAt, "dpi_text", "", fCurrentOptions.DPI(),
0, kMsgDPIChanged);
rb = AddRadioButton(panel, at, "width_and_height", "Resize To (in 1/72 Inches):", kMsgWidthAndHeightSelected, op == PrintOptions::kWidth || op == PrintOptions::kHeight);
rb = AddRadioButton(panel, at, "width_and_height",
"Resize To (in 1/72 Inches):", kMsgWidthAndHeightSelected,
op == PrintOptions::kWidth || op == PrintOptions::kHeight);
at.x += 15;
textAt = at;
fWidth = AddTextControl(panel, textAt, "width", "Width: ", fCurrentOptions.Width(), 40, kMsgWidthChanged);
fWidth = AddTextControl(panel, textAt, "width", "Width: ",
fCurrentOptions.Width(), 40, kMsgWidthChanged);
textAt = at;
textAt.x += fWidth->Bounds().Width() + 5;
fHeight = AddTextControl(panel, textAt, "height", "Height: ", fCurrentOptions.Height(), 40, kMsgHeightChanged);
fHeight = AddTextControl(panel, textAt, "height", "Height: ",
fCurrentOptions.Height(), 40, kMsgHeightChanged);
at.x = 0;
at.y = textAt.y;
@@ -172,7 +179,8 @@ PrintOptionsWindow::Setup()
at.y += 10;
rect.OffsetBy(at);
button = new BButton(rect, "job setup", "Job Setup", new BMessage(kMsgJobSetup));
button = new BButton(rect, "job setup", "Job Setup",
new BMessage(kMsgJobSetup));
panel->AddChild(button);
button->ResizeToPreferred();
@@ -182,11 +190,14 @@ PrintOptionsWindow::Setup()
ResizeTo(fHeight->Frame().right + kIndent, button->Frame().bottom + kIndent);
// center button
button->MoveTo((Bounds().Width()-button->Bounds().Width())/2, button->Frame().top);
button->MoveTo((Bounds().Width()-button->Bounds().Width())/2,
button->Frame().top);
}
enum PrintOptions::Option
PrintOptionsWindow::MsgToOption(uint32 what) {
PrintOptionsWindow::MsgToOption(uint32 what)
{
switch (what) {
case kMsgFitToPageSelected: return PrintOptions::kFitToPage;
case kMsgZoomFactorSelected: return PrintOptions::kZoomFactor;
@@ -196,6 +207,7 @@ PrintOptionsWindow::MsgToOption(uint32 what) {
return PrintOptions::kFitToPage;
}
bool
PrintOptionsWindow::GetValue(BTextControl* text, float* value)
{
@@ -203,6 +215,7 @@ PrintOptionsWindow::GetValue(BTextControl* text, float* value)
return true;
}
void
PrintOptionsWindow::SetValue(BTextControl* text, float value)
{
@@ -216,6 +229,7 @@ PrintOptionsWindow::SetValue(BTextControl* text, float value)
text->SetModificationMessage(msg);
}
void
PrintOptionsWindow::MessageReceived(BMessage* msg)
{
@@ -229,7 +243,8 @@ PrintOptionsWindow::MessageReceived(BMessage* msg)
break;
case kMsgZoomFactorChanged:
if (GetValue(fZoomFactor, &value) && fCurrentOptions.ZoomFactor() != value) {
if (GetValue(fZoomFactor, &value)
&& fCurrentOptions.ZoomFactor() != value) {
fCurrentOptions.SetZoomFactor(value/100);
SetValue(fDPI, fCurrentOptions.DPI());
}
@@ -263,3 +278,4 @@ PrintOptionsWindow::MessageReceived(BMessage* msg)
BWindow::MessageReceived(msg);
}
}
+65 -75
View File
@@ -1,42 +1,29 @@
/*****************************************************************************/
// PrintOptionsWindow
// Written by Michael Pfeiffer
//
// PrintOptionsWindow.h
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, [email protected]
*/
#ifndef PRINT_OPTIONS_WINDOW_H
#define PRINT_OPTIONS_WINDOW_H
#ifndef _PrintOptionsWindow_h
#define _PrintOptionsWindow_h
#include <Window.h>
#include <RadioButton.h>
#include <TextControl.h>
#include <Messenger.h>
#include <RadioButton.h>
#include <Rect.h>
#include <TextControl.h>
#include <Window.h>
class PrintOptions {
public:
PrintOptions();
// bounds of the image
BRect Bounds() const { return fBounds; }
void SetBounds(BRect bounds);
enum Option {
kFitToPage,
kZoomFactor,
@@ -45,50 +32,60 @@ public:
kHeight,
kNumberOfOptions
};
PrintOptions();
enum Option Option() const { return fOption; }
void SetOption(enum Option op) { fOption = op; }
// bounds of the image
BRect Bounds() const { return fBounds; }
void SetBounds(BRect bounds);
enum Option Option() const { return fOption; }
void SetOption(enum Option op) { fOption = op; }
// zoomFactor = 72.0 / dpi
float ZoomFactor() const { return fZoomFactor; }
void SetZoomFactor(float z);
float DPI() const { return fDPI; }
void SetDPI(float dpi);
// setting width/height updates height/width to keep aspect ratio
float Width() const { return fWidth; }
float Height() const { return fHeight; }
void SetWidth(float width);
void SetHeight(float height);
// ZoomFactor = 72.0 / dpi
float ZoomFactor() const { return fZoomFactor; }
void SetZoomFactor(float z);
float DPI() const { return fDPI; }
void SetDPI(float dpi);
// Setting width/height updates height/width to keep aspect ratio
float Width() const { return fWidth; }
float Height() const { return fHeight; }
void SetWidth(float width);
void SetHeight(float height);
private:
BRect fBounds;
enum Option fOption;
float fZoomFactor;
float fDPI;
float fWidth, fHeight; // 1/72 Inches
BRect fBounds;
enum Option fOption;
float fZoomFactor;
float fDPI;
float fWidth, fHeight; // 1/72 Inches
};
class PrintOptionsWindow : public BWindow
{
class PrintOptionsWindow : public BWindow {
public:
PrintOptionsWindow(BPoint at, PrintOptions* options, BWindow* listener);
~PrintOptionsWindow();
PrintOptionsWindow(BPoint at,
PrintOptions* options, BWindow* listener);
~PrintOptionsWindow();
void MessageReceived(BMessage* msg);
void MessageReceived(BMessage* msg);
private:
BRadioButton* AddRadioButton(BView* view, BPoint& at, const char* name, const char* label, uint32 what, bool selected);
BTextControl* AddTextControl(BView* view, BPoint& at, const char* name, const char* label, float value, float divider, uint32 what);
void Setup();
enum PrintOptions::Option MsgToOption(uint32 what);
bool GetValue(BTextControl* text, float* value);
void SetValue(BTextControl* text, float value);
BRadioButton* AddRadioButton(BView* view, BPoint& at,
const char* name, const char* label,
uint32 what, bool selected);
BTextControl* AddTextControl(BView* view, BPoint& at,
const char* name, const char* label,
float value, float divider, uint32 what);
void Setup();
enum PrintOptions::Option MsgToOption(uint32 what);
bool GetValue(BTextControl* text, float* value);
void SetValue(BTextControl* text, float value);
PrintOptions* fPrintOptions;
PrintOptions fCurrentOptions;
BMessenger fListener;
status_t fStatus;
BTextControl* fZoomFactor;
BTextControl* fDPI;
BTextControl* fWidth;
BTextControl* fHeight;
enum {
kMsgOK = 'mPOW',
kMsgFitToPageSelected,
@@ -106,15 +103,8 @@ private:
kIndent = 5,
kLineSkip = 5,
};
PrintOptions* fPrintOptions;
PrintOptions fCurrentOptions;
BMessenger fListener;
status_t fStatus;
BTextControl* fZoomFactor;
BTextControl* fDPI;
BTextControl* fWidth;
BTextControl* fHeight;
};
#endif
+5 -4
View File
@@ -3,23 +3,24 @@
* Distributed under the terms of the MIT License.
*/
#include "ProgressWindow.h"
#include "ShowImageConstants.h"
#include <stdio.h>
#include <Autolock.h>
#include <MessageRunner.h>
#include <Screen.h>
#include <StatusBar.h>
#include <stdio.h>
#include "ShowImageConstants.h"
static const uint32 kMsgShow = 'show';
ProgressWindow::ProgressWindow(BWindow* referenceWindow)
: BWindow(BRect(0, 0, 250, 100), "Progress Monitor",
:
BWindow(BRect(0, 0, 250, 100), "Progress Monitor",
B_MODAL_WINDOW_LOOK, B_FLOATING_APP_WINDOW_FEEL,
B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS),
fRunner(NULL)
+12 -11
View File
@@ -13,20 +13,21 @@ class BStatusBar;
class ProgressWindow : public BWindow {
public:
ProgressWindow(BWindow* referenceWindow);
virtual ~ProgressWindow();
public:
ProgressWindow(BWindow* referenceWindow);
virtual ~ProgressWindow();
virtual void MessageReceived(BMessage *message);
virtual void MessageReceived(BMessage *message);
void Start();
void Stop();
void Start();
void Stop();
private:
BStatusBar* fStatusBar;
BMessageRunner* fRunner;
bool fRetrievedUpdate;
bool fRetrievedShow;
private:
BStatusBar* fStatusBar;
BMessageRunner* fRunner;
bool fRetrievedUpdate;
bool fRetrievedShow;
};
#endif // PROGRESS_WINDOW_H
+35 -24
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2006-2007, Haiku, Inc. All Rights Reserved.
* Copyright 2006-2009, Haiku, Inc. All Rights Reserved.
* Copyright 2004-2005 yellowTAB GmbH. All Rights Reserverd.
* Copyright 2006 Bernd Korz. All Rights Reserved
* Distributed under the terms of the MIT License.
@@ -7,10 +7,13 @@
* Authors:
* yellowTAB GmbH
* Bernd Korz
* Michael Pfeiffer
* Ryan Leavengood
* Michael Pfeiffer
* Ryan Leavengood
*/
#include "ResizerWindow.h"
#include <stdlib.h>
#include <Box.h>
#include <Button.h>
@@ -20,9 +23,6 @@
#include <String.h>
#include <TextControl.h>
#include <stdlib.h>
#include "ResizerWindow.h"
#include "ShowImageConstants.h"
@@ -37,10 +37,12 @@ static const float kVerticalIndent = 10;
ResizerWindow::ResizerWindow(BMessenger target, int32 width, int32 height)
: BWindow(BRect(100, 100, 300, 300), "Resize", B_FLOATING_WINDOW, B_NOT_ZOOMABLE | B_NOT_RESIZABLE)
, fOriginalWidth(width)
, fOriginalHeight(height)
, fTarget(target)
:
BWindow(BRect(100, 100, 300, 300), "Resize", B_FLOATING_WINDOW,
B_NOT_ZOOMABLE | B_NOT_RESIZABLE),
fOriginalWidth(width),
fOriginalHeight(height),
fTarget(target)
{
BView* back_view = new BView(Bounds(), "", B_FOLLOW_ALL, B_WILL_DRAW);
back_view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
@@ -51,8 +53,10 @@ ResizerWindow::ResizerWindow(BMessenger target, int32 width, int32 height)
const float column2 = max_c(widthLabelWidth, heightLabelWidth);
const float textControlWidth = column2 + back_view->StringWidth("999999");
const float keepAspectRatioLabelWidth = 20 + back_view->StringWidth(kKeepAspectRatioLabel);
const float width2 = 2 * kHorizontalIndent + max_c(textControlWidth, keepAspectRatioLabelWidth);
const float keepAspectRatioLabelWidth = 20
+ back_view->StringWidth(kKeepAspectRatioLabel);
const float width2 = 2 * kHorizontalIndent
+ max_c(textControlWidth, keepAspectRatioLabelWidth);
ResizeTo(width2+1, Bounds().Height()+1);
@@ -62,17 +66,20 @@ ResizerWindow::ResizerWindow(BMessenger target, int32 width, int32 height)
BString widthValue;
widthValue << width;
fWidth = new BTextControl(rect, "width", kWidthLabel, widthValue.String(), NULL);
fWidth = new BTextControl(rect, "width", kWidthLabel, widthValue.String(),
NULL);
fWidth->SetModificationMessage(new BMessage(kWidthModifiedMsg));
AddControl(back_view, fWidth, column2, rect);
BString heightValue;
heightValue << height;
fHeight = new BTextControl(rect, "height", kHeightLabel, heightValue.String(), NULL);
fHeight = new BTextControl(rect, "height", kHeightLabel,
heightValue.String(), NULL);
fHeight->SetModificationMessage(new BMessage(kHeightModifiedMsg));
AddControl(back_view, fHeight, column2, rect);
fAspectRatio = new BCheckBox(rect, "Ratio", kKeepAspectRatioLabel, new BMessage(kWidthModifiedMsg));
fAspectRatio = new BCheckBox(rect, "Ratio", kKeepAspectRatioLabel,
new BMessage(kWidthModifiedMsg));
fAspectRatio->SetValue(B_CONTROL_ON);
AddControl(back_view, fAspectRatio, column2, rect);
@@ -87,8 +94,14 @@ ResizerWindow::ResizerWindow(BMessenger target, int32 width, int32 height)
}
ResizerWindow::~ResizerWindow()
{
}
void
ResizerWindow::AddControl(BView* view, BControl* control, float column2, BRect& rect)
ResizerWindow::AddControl(BView* view, BControl* control, float column2,
BRect& rect)
{
float width, height;
view->AddChild(control);
@@ -116,7 +129,8 @@ ResizerWindow::AddSeparatorLine(BView* view, BRect& rect)
line.right -= 3;
line.top = rect.top;
line.bottom = line.top + lineWidth - 1;
BBox* separatorLine = new BBox(line, "", B_FOLLOW_LEFT_RIGHT, B_WILL_DRAW | B_FRAME_EVENTS, B_PLAIN_BORDER);
BBox* separatorLine = new BBox(line, "", B_FOLLOW_LEFT_RIGHT,
B_WILL_DRAW | B_FRAME_EVENTS, B_PLAIN_BORDER);
view->AddChild(separatorLine);
rect.OffsetBy(0, kLineDistance + lineWidth);
}
@@ -177,7 +191,8 @@ ResizerWindow::MessageReceived(BMessage* message)
case kWidthModifiedMsg:
if (fAspectRatio->Value() == B_CONTROL_ON) {
int w = atoi(fWidth->Text());
int h = (int)((int64)w * (int64) fOriginalHeight / (int64) fOriginalWidth);
int h = (int)((int64)w * (int64) fOriginalHeight
/ (int64) fOriginalWidth);
BString height;
height << h;
BMessage* msg = new BMessage(*fHeight->ModificationMessage());
@@ -189,7 +204,8 @@ ResizerWindow::MessageReceived(BMessage* message)
case kHeightModifiedMsg:
if (fAspectRatio->Value() == B_CONTROL_ON) {
int h = atoi(fHeight->Text());
int w = (int)((int64)h * (int64) fOriginalWidth / (int64) fOriginalHeight);
int w = (int)((int64)h * (int64) fOriginalWidth
/ (int64) fOriginalHeight);
BString width;
width << w;
BMessage* msg = new BMessage(*fWidth->ModificationMessage());
@@ -213,11 +229,6 @@ ResizerWindow::MessageReceived(BMessage* message)
}
ResizerWindow::~ResizerWindow()
{
}
bool
ResizerWindow::QuitRequested()
{
+19 -15
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2006-2007, Haiku, Inc. All Rights Reserved.
* Copyright 2006-2009, Haiku, Inc. All Rights Reserved.
* Copyright 2004-2005 yellowTAB GmbH. All Rights Reserverd.
* Copyright 2006 Bernd Korz. All Rights Reserved
* Distributed under the terms of the MIT License.
@@ -7,15 +7,16 @@
* Authors:
* yellowTAB GmbH
* Bernd Korz
* Michael Pfeiffer
* Ryan Leavengood
* Michael Pfeiffer
* Ryan Leavengood
*/
#ifndef _RESIZER_WINDOW_H
#define _RESIZER_WINDOW_H
#ifndef RESIZER_WINDOW_H
#define RESIZER_WINDOW_H
#include <Window.h>
#include <Messenger.h>
#include <View.h>
#include <Window.h>
class BCheckBox;
class BControl;
@@ -24,7 +25,8 @@ class BTextControl;
class ResizerWindow : public BWindow {
public:
ResizerWindow(BMessenger target, int32 width, int32 height );
ResizerWindow(BMessenger target, int32 width,
int32 height );
virtual void MessageReceived(BMessage* msg);
virtual bool QuitRequested();
@@ -36,7 +38,8 @@ class ResizerWindow : public BWindow {
kActivateMsg = 'RSRa',
// activates the window
kUpdateMsg,
// provides the new size of the image in two "int32" fields "width" and "height"
// provides the new size of the image in two "int32" fields
// "width" and "height"
};
private:
@@ -47,10 +50,10 @@ class ResizerWindow : public BWindow {
kApplyMsg,
};
void AddControl(BView* parent, BControl* control, float column2,
BRect& rect);
void AddSeparatorLine(BView* parent, BRect& rect);
void LeftAlign(BControl* control);
void AddControl(BView* parent, BControl* control,
float column2, BRect& rect);
void AddSeparatorLine(BView* parent, BRect& rect);
void LeftAlign(BControl* control);
BTextControl* fWidth;
BTextControl* fHeight;
@@ -58,9 +61,10 @@ class ResizerWindow : public BWindow {
BButton* fApply;
// the original size of the image use for aspect ratio calculation
// to avoid rounding errors
int32 fOriginalWidth;
int32 fOriginalHeight;
int32 fOriginalWidth;
int32 fOriginalHeight;
BMessenger fTarget;
};
#endif // _RESIZER_WINDOW_H
#endif // RESIZER_WINDOW_H
+1 -1
View File
@@ -13,7 +13,7 @@ resource app_version {
internal = 0,
short_info = "ShowImage",
long_info = "ShowImage ©2003-2007 Haiku, Inc."
long_info = "ShowImage ©2003-2009 Haiku, Inc."
};
resource app_flags B_SINGLE_LAUNCH;
+9 -7
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2003-2007, Haiku, Inc. All Rights Reserved.
* Copyright 2003-2009, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
@@ -9,10 +9,9 @@
* Ryan Leavengood
*/
#include "ShowImageApp.h"
#include "ShowImageConstants.h"
#include "ShowImageWindow.h"
#include <stdio.h>
#include <AboutWindow.h>
#include <Alert.h>
@@ -21,7 +20,8 @@
#include <Path.h>
#include <String.h>
#include <stdio.h>
#include "ShowImageConstants.h"
#include "ShowImageWindow.h"
#define WINDOWS_TO_IGNORE 1
@@ -30,7 +30,8 @@ extern const char *kApplicationSignature = "application/x-vnd.Haiku-ShowImage";
ShowImageApp::ShowImageApp()
: BApplication(kApplicationSignature)
:
BApplication(kApplicationSignature)
{
fPulseStarted = false;
fOpenPanel = new BFilePanel(B_OPEN_PANEL);
@@ -109,7 +110,8 @@ ShowImageApp::ArgvReceived(int32 argc, char **argv)
// get current working directory
const char *cwd;
if (CurrentMessage() == NULL || CurrentMessage()->FindString("cwd", &cwd) != B_OK)
if (CurrentMessage() == NULL
|| CurrentMessage()->FindString("cwd", &cwd) != B_OK)
cwd = "";
for (int32 i = 1; i < argc; i++) {
+23 -22
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2003-2006, Haiku, Inc. All Rights Reserved.
* Copyright 2003-2009, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
@@ -18,36 +18,37 @@
class ShowImageApp : public BApplication {
public:
ShowImageApp();
virtual ~ShowImageApp();
public:
ShowImageApp();
virtual ~ShowImageApp();
public:
virtual void AboutRequested();
virtual void ArgvReceived(int32 argc, char **argv);
virtual void MessageReceived(BMessage *message);
virtual void ReadyToRun();
virtual void Pulse();
virtual void RefsReceived(BMessage *message);
virtual bool QuitRequested();
virtual void AboutRequested();
virtual void ArgvReceived(int32 argc, char **argv);
virtual void MessageReceived(BMessage *message);
virtual void ReadyToRun();
virtual void Pulse();
virtual void RefsReceived(BMessage *message);
virtual bool QuitRequested();
ShowImageSettings* Settings() { return &fSettings; }
ShowImageSettings* Settings() { return &fSettings; }
private:
void StartPulse();
void Open(const entry_ref *ref);
void BroadcastToWindows(BMessage *message);
void CheckClipboard();
private:
void StartPulse();
void Open(const entry_ref *ref);
void BroadcastToWindows(BMessage *message);
void CheckClipboard();
BMessenger fTrackerMessenger; // of the window this was launched
BFilePanel *fOpenPanel;
bool fPulseStarted;
ShowImageSettings fSettings;
BMessenger fTrackerMessenger;
BFilePanel *fOpenPanel;
bool fPulseStarted;
ShowImageSettings fSettings;
};
extern const char *kApplicationSignature;
#define my_app dynamic_cast<ShowImageApp*>(be_app)
#endif // SHOW_IMAGE_APP_H
+26 -28
View File
@@ -1,42 +1,24 @@
/*****************************************************************************/
// ShowImageSettings
// Written by Michael Pfeiffer
//
// ShowImageSettings.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, [email protected]
*/
#include "ShowImageSettings.h"
#include <File.h>
#include <FindDirectory.h>
#include <Path.h>
#include "ShowImageSettings.h"
ShowImageSettings::ShowImageSettings()
{
Load();
}
ShowImageSettings::~ShowImageSettings()
{
if (Lock()) {
@@ -45,18 +27,21 @@ ShowImageSettings::~ShowImageSettings()
}
}
bool
ShowImageSettings::Lock()
{
return fLock.Lock();
}
void
ShowImageSettings::Unlock()
{
fLock.Unlock();
}
bool
ShowImageSettings::GetBool(const char* name, bool defaultValue)
{
@@ -68,6 +53,7 @@ ShowImageSettings::GetBool(const char* name, bool defaultValue)
}
}
int32
ShowImageSettings::GetInt32(const char* name, int32 defaultValue)
{
@@ -79,6 +65,7 @@ ShowImageSettings::GetInt32(const char* name, int32 defaultValue)
}
}
float
ShowImageSettings::GetFloat(const char* name, float defaultValue)
{
@@ -90,6 +77,7 @@ ShowImageSettings::GetFloat(const char* name, float defaultValue)
}
}
BRect
ShowImageSettings::GetRect(const char* name, BRect defaultValue)
{
@@ -101,6 +89,7 @@ ShowImageSettings::GetRect(const char* name, BRect defaultValue)
}
}
const char*
ShowImageSettings::GetString(const char* name, const char* defaultValue)
{
@@ -112,6 +101,7 @@ ShowImageSettings::GetString(const char* name, const char* defaultValue)
}
}
void
ShowImageSettings::SetBool(const char* name, bool value)
{
@@ -122,6 +112,7 @@ ShowImageSettings::SetBool(const char* name, bool value)
}
}
void
ShowImageSettings::SetInt32(const char* name, int32 value)
{
@@ -132,6 +123,7 @@ ShowImageSettings::SetInt32(const char* name, int32 value)
}
}
void
ShowImageSettings::SetFloat(const char* name, float value)
{
@@ -142,6 +134,7 @@ ShowImageSettings::SetFloat(const char* name, float value)
}
}
void
ShowImageSettings::SetRect(const char* name, BRect value)
{
@@ -152,6 +145,7 @@ ShowImageSettings::SetRect(const char* name, BRect value)
}
}
void
ShowImageSettings::SetString(const char* name, const char* value)
{
@@ -162,6 +156,7 @@ ShowImageSettings::SetString(const char* name, const char* value)
}
}
bool
ShowImageSettings::OpenSettingsFile(BFile* file, bool forReading)
{
@@ -182,6 +177,7 @@ ShowImageSettings::OpenSettingsFile(BFile* file, bool forReading)
return st == B_OK;
}
void
ShowImageSettings::Load()
{
@@ -191,6 +187,7 @@ ShowImageSettings::Load()
}
}
void
ShowImageSettings::Save()
{
@@ -199,3 +196,4 @@ ShowImageSettings::Save()
fSettings.Flatten(&file);
}
}
+33 -52
View File
@@ -1,64 +1,45 @@
/*****************************************************************************/
// ShowImageSettings
// Written by Michael Pfeiffer
//
// ShowImageSettings.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Pfeiffer, laplace@haiku-os.org
*/
#ifndef SHOW_IMAGE_SETTINGS_H
#define SHOW_IMAGE_SETTINGS_H
#ifndef _ShowImageSettings_H
#define _ShowImageSettings_H
#include <File.h>
#include <Message.h>
#include <Locker.h>
class ShowImageSettings
{
public:
ShowImageSettings();
~ShowImageSettings();
bool Lock();
bool GetBool(const char* name, bool defaultValue);
int32 GetInt32(const char* name, int32 defaultValue);
float GetFloat(const char* name, float defaultValue);
BRect GetRect(const char* name, BRect defaultValue);
const char* GetString(const char* name, const char* defaultValue);
void SetBool(const char* name, bool value);
void SetInt32(const char* name, int32 value);
void SetFloat(const char* name, float value);
void SetRect(const char* name, BRect value);
void SetString(const char* name, const char* value);
void Unlock();
class ShowImageSettings {
public:
ShowImageSettings();
~ShowImageSettings();
bool Lock();
bool GetBool(const char* name, bool defaultValue);
int32 GetInt32(const char* name, int32 defaultValue);
float GetFloat(const char* name, float defaultValue);
BRect GetRect(const char* name, BRect defaultValue);
const char* GetString(const char* name, const char* defaultValue);
void SetBool(const char* name, bool value);
void SetInt32(const char* name, int32 value);
void SetFloat(const char* name, float value);
void SetRect(const char* name, BRect value);
void SetString(const char* name, const char* value);
void Unlock();
private:
bool OpenSettingsFile(BFile* file, bool forReading);
void Load();
void Save();
bool OpenSettingsFile(BFile* file, bool forReading);
void Load();
void Save();
BLocker fLock;
BMessage fSettings;
BLocker fLock;
BMessage fSettings;
};
#endif
#endif // SHOW_IMAGE_SETTINGS_H
+15 -33
View File
@@ -1,44 +1,27 @@
/*****************************************************************************/
// ShowImageStatusView
// Written by Fernando Francisco de Oliveira, Michael Wilber
//
// ShowImageStatusView.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Fernando Francisco de Oliveira
* Michael Wilber
*/
#include "ShowImageStatusView.h"
#include "ShowImageView.h"
#include "ShowImageWindow.h"
#include <Entry.h>
#include <MenuItem.h>
#include <Path.h>
#include <PopUpMenu.h>
#include "ShowImageView.h"
#include "ShowImageWindow.h"
ShowImageStatusView::ShowImageStatusView(BRect rect, const char* name,
uint32 resizingMode, uint32 flags)
: BView(rect, name, resizingMode, flags)
:
BView(rect, name, resizingMode, flags)
{
SetViewColor(B_TRANSPARENT_32_BIT);
SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR));
@@ -76,7 +59,7 @@ ShowImageStatusView::Draw(BRect updateRect)
b.InsetBy(1.0, 1.0);
// truncate and layout text
// Truncate and layout text
BString truncated(fText);
BFont font;
GetFont(&font);
@@ -87,8 +70,7 @@ ShowImageStatusView::Draw(BRect updateRect)
FillRect(b, B_SOLID_LOW);
SetDrawingMode(B_OP_OVER);
DrawString(truncated.String(), BPoint(b.left + 2.0,
floorf(b.top + b.Height() / 2.0
+ fh.ascent / 2.0)));
floorf(b.top + b.Height() / 2.0 + fh.ascent / 2.0)));
}
+20 -39
View File
@@ -1,50 +1,31 @@
/*****************************************************************************/
// ShowImageStatusView
// Written by Fernando Francisco de Oliveira, Michael Wilber
//
// ShowImageStatusView.h
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Fernando Francisco de Oliveira
* Michael Wilber
*/
#ifndef SHOW_IMAGE_STATUS_VIEW_H
#define SHOW_IMAGE_STATUS_VIEW_H
#ifndef _ShowImageStatusView_h
#define _ShowImageStatusView_h
#include <View.h>
#include <String.h>
#include <View.h>
class ShowImageStatusView : public BView {
public:
ShowImageStatusView(BRect rect, const char *name, uint32 resizingMode,
uint32 flags);
ShowImageStatusView(BRect rect, const char *name,
uint32 resizingMode, uint32 flags);
virtual void Draw(BRect updateRect);
virtual void MouseDown(BPoint where);
void SetText(BString &text);
virtual void Draw(BRect updateRect);
virtual void MouseDown(BPoint where);
void SetText(BString &text);
private:
BString fText;
BString fText;
};
#endif /* _ShowImageStatusView_h */
#endif // SHOW_IMAGE_STATUS_VIEW_H
+21 -32
View File
@@ -1,49 +1,33 @@
/*****************************************************************************/
// ShowImageUndo
// Written by Michael Wilber
//
// ShowImageUndo.cpp
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Wilber
*/
#include "ShowImageUndo.h"
#include <stdio.h>
#include <stdlib.h>
ShowImageUndo::ShowImageUndo()
:
fWindow(NULL),
fUndoType(0),
fRestore(NULL),
fSelection(NULL)
{
fWindow = NULL;
fUndoType = 0;
fRestore = NULL;
fSelection = NULL;
}
ShowImageUndo::~ShowImageUndo()
{
InternalClear();
}
void
ShowImageUndo::InternalClear()
{
@@ -54,6 +38,7 @@ ShowImageUndo::InternalClear()
fSelection = NULL;
}
void
ShowImageUndo::Clear()
{
@@ -61,12 +46,14 @@ ShowImageUndo::Clear()
SendUndoStateMessage(false);
}
void
ShowImageUndo::SendUndoStateMessage(bool bCanUndo)
{
if (fWindow) {
if (!fWindow->IsLocked()) {
fprintf(stderr, "ShowImageUndo::SendUndoStateMessage: window must be locked!");
fprintf(stderr,
"ShowImageUndo::SendUndoStateMessage: window must be locked!");
exit(-1);
}
BMessage msg(MSG_UNDO_STATE);
@@ -75,6 +62,7 @@ ShowImageUndo::SendUndoStateMessage(bool bCanUndo)
}
}
void
ShowImageUndo::SetTo(BRect rect, BBitmap *restore, BBitmap *selection)
{
@@ -89,6 +77,7 @@ ShowImageUndo::SetTo(BRect rect, BBitmap *restore, BBitmap *selection)
SendUndoStateMessage(true);
}
void
ShowImageUndo::Undo(BRect rect, BBitmap *restore, BBitmap *selection)
{
+33 -49
View File
@@ -1,79 +1,63 @@
/*****************************************************************************/
// ShowImageUndo
// Written by Michael Wilber
//
// ShowImageUndo.h
//
//
// Copyright (c) 2003 OpenBeOS Project
//
// 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.
/*****************************************************************************/
/*
* Copyright 2003-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Wilber
*/
#ifndef SHOW_IMAGE_UNDO_H
#define SHOW_IMAGE_UNDO_H
#ifndef _ShowImageUndo_h
#define _ShowImageUndo_h
#include <Rect.h>
#include <Bitmap.h>
#include <Window.h>
#include <Message.h>
#include <Messenger.h>
#include <Rect.h>
#include <Window.h>
#include "ShowImageConstants.h"
// for Undo
#define UNDO_UNDO 1
#define UNDO_REDO 2
class ShowImageUndo {
public:
ShowImageUndo();
~ShowImageUndo();
ShowImageUndo();
~ShowImageUndo();
void SetWindow(BWindow *win) { fWindow = win; }
void SetWindow(BWindow* win) { fWindow = win; }
void Clear();
void Clear();
// NOTE: THESE TWO FUNCTIONS DO NOT MAKE COPIES OF THE
// BITMAPS PASSED TO THEM
void SetTo(BRect rect, BBitmap *restore, BBitmap *selection);
void Undo(BRect rect, BBitmap *restore, BBitmap *selection);
void SetTo(BRect rect, BBitmap* restore, BBitmap* selection);
void Undo(BRect rect, BBitmap* restore, BBitmap* selection);
int32 GetType() { return fUndoType; }
BRect GetRect() { return fRect; }
BBitmap *GetRestoreBitmap() { return fRestore; }
BBitmap *GetSelectionBitmap() { return fSelection; }
int32 GetType() { return fUndoType; }
BRect GetRect() { return fRect; }
BBitmap* GetRestoreBitmap() { return fRestore; }
BBitmap* GetSelectionBitmap() { return fSelection; }
private:
void InternalClear();
void SendUndoStateMessage(bool bCanUndo);
void InternalClear();
void SendUndoStateMessage(bool bCanUndo);
BWindow *fWindow;
BWindow* fWindow;
// Window to which notification messages are sent
int32 fUndoType;
int32 fUndoType;
// Nothing, Undo or Redo
BRect fRect;
BRect fRect;
// Area of background bitmap where change took place
BBitmap *fRestore;
BBitmap* fRestore;
// Changed portion of background bitmap, before change took place
BBitmap *fSelection;
BBitmap* fSelection;
// Selection present before change took place
};
#endif /* _ShowImageUndo_h */
#endif // SHOW_IMAGE_UNDO_H