Planeshift
|
00001 /* 00002 * pawsbookreadingwindow.h - Author: Daniel Fryer, based on work by Andrew Craig 00003 * 00004 * Copyright (C) 2003 Atomic Blue ([email protected], http://www.atomicblue.org) 00005 * 00006 * 00007 * This program is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU General Public License 00009 * as published by the Free Software Foundation (version 2 of the License) 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 * 00018 */ 00019 00020 #ifndef PAWS_BOOK_READING_WINDOW_HEADER 00021 #define PAWS_BOOK_READING_WINDOW_HEADER 00022 00023 #include "paws/pawswidget.h" 00024 00025 class pawsTextBox; 00026 class pawsMultiLineTextBox; 00027 00030 class pawsBookReadingWindow : public pawsWidget, public psClientNetSubscriber 00031 { 00032 public: 00033 pawsBookReadingWindow(); 00034 virtual ~pawsBookReadingWindow(); 00035 00036 bool PostSetup(); 00037 00038 void HandleMessage(MsgEntry* message); 00039 00047 void TurnPage(int count); 00048 00056 void SetPage(int page); 00057 00058 virtual bool OnMouseDown(int button, int modifiers, int x, int y); 00059 virtual bool OnKeyDown(utf32_char keyCode, utf32_char key, int modifiers); 00060 virtual bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* widget); 00061 00062 private: 00063 void UpdatePageNumbers(bool mode); 00064 pawsTextBox* name; 00065 pawsTextBox* pageNum; 00066 pawsTextBox* pageNumRight; 00067 pawsMultiPageTextBox* description; 00068 pawsMultiPageTextBox* descriptionRight; 00069 pawsMultiPageTextBox* descriptionCraft; 00070 pawsMultiPageTextBox* descriptionCraftRight; 00071 pawsWidget* writeButton; 00072 pawsWidget* saveButton; 00073 pawsWidget* nextButton; 00074 pawsWidget* prevButton; 00075 bool shouldWrite; 00076 int slotID; 00077 int containerID; 00078 bool usingCraft; 00079 csString filenameSafe(const csString &original); 00080 bool isBadChar(char c); 00081 00083 csRef<iPawsImage> bookBgImage; 00084 virtual void Draw(); 00085 00086 int numPages; 00087 00088 }; 00089 00090 CREATE_PAWS_FACTORY(pawsBookReadingWindow); 00091 00092 00093 #endif 00094 00095