summaryrefslogtreecommitdiffstats
path: root/src/krecipesview.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/krecipesview.h')
-rw-r--r--src/krecipesview.h215
1 files changed, 215 insertions, 0 deletions
diff --git a/src/krecipesview.h b/src/krecipesview.h
new file mode 100644
index 0000000..01d22c0
--- /dev/null
+++ b/src/krecipesview.h
@@ -0,0 +1,215 @@
+/***************************************************************************
+* Copyright (C) 2003 by *
+* Unai Garro <[email protected]> *
+* Cyril Bosselut ([email protected]) *
+* Jason Kivlighn ([email protected]) *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+***************************************************************************/
+
+#ifndef KRECIPESVIEW_H
+#define KRECIPESVIEW_H
+
+#include <tqbitmap.h>
+#include <tqbuttongroup.h>
+#include <tqevent.h>
+#include <tqlabel.h>
+#include <tqpushbutton.h>
+#include <tqtooltip.h>
+#include <tqhbox.h>
+#include <tqvaluelist.h>
+#include <tqvbox.h>
+#include <tqwidget.h>
+#include <tqwidgetstack.h>
+
+#include <kiconloader.h>
+#include <kpixmap.h>
+#include <kpixmapeffect.h>
+#include <kimageeffect.h>
+#include <tdeparts/part.h>
+#include <tdestyle.h>
+#include <ktextbrowser.h>
+
+#include "importers/baseimporter.h"
+#include "backends/recipedb.h"
+#include "krecipesiface.h"
+
+class AuthorsDialog;
+class PrepMethodsDialog;
+class CategoriesEditorDialog;
+class DietWizardDialog;
+class IngredientsDialog;
+class Menu;
+class KreMenu;
+class KreMenuButton;
+class IngredientMatcherDialog;
+class PanelDeco;
+class PropertiesDialog;
+class TQPainter;
+class RecipeInputDialog;
+class RecipeViewDialog;
+class SelectRecipeDialog;
+class ShoppingListDialog;
+class UnitsDialog;
+typedef TQValueList <Menu>::Iterator MenuId;
+
+
+/**
+ * This is the main view class for Krecipes. Most of the non-menu,
+ * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go
+ * here.
+ *
+ * This krecipes uses an HTML component as an example.
+ *
+ * @short Main view
+ * @author Unai Garro <[email protected]>
+ * @version 0.4
+ */
+
+
+// Declarations
+
+
+
+// Some constants
+enum KrePanel {SelectP = 0, ShoppingP, DietP, MatcherP, IngredientsP, PropertiesP, UnitsP, PrepMethodsP, CategoriesP, AuthorsP, RecipeEdit, RecipeView };
+
+
+// Class KrecipesView
+class KrecipesView : public TQVBox, virtual public KrecipesIface
+{
+ TQ_OBJECT
+public:
+ /**
+ * Default constructor
+ */
+ KrecipesView( TQWidget *parent );
+
+ /**
+ * Destructor
+ */
+ virtual ~KrecipesView();
+
+ virtual DCOPRef currentDatabase() const;
+ RecipeDB *database;
+
+ /**
+ * Print this view to any medium -- paper or not
+ */
+ void print();
+
+ virtual void show ( void ); //Needed to make sure that the raise() is done after the construction of all the widgets, otherwise childEvent in the PanelDeco is called only _after_ the raise(), and can't be shown.
+
+signals:
+ /**
+ * Use this signal to change the content of the statusbar
+ */
+ void signalChangeStatusbar( const TQString& text );
+
+ /**
+ * Use this signal to change the content of the caption
+ */
+ void signalChangeCaption( const TQString& text );
+
+ void panelShown( KrePanel, bool );
+
+
+public:
+
+ // public widgets
+ RecipeInputDialog *inputPanel;
+ RecipeViewDialog *viewPanel;
+ SelectRecipeDialog *selectPanel;
+ IngredientsDialog *ingredientsPanel;
+ PropertiesDialog *propertiesPanel;
+ UnitsDialog* unitsPanel;
+ ShoppingListDialog* shoppingListPanel;
+ DietWizardDialog* dietPanel;
+ CategoriesEditorDialog *categoriesPanel;
+ AuthorsDialog *authorsPanel;
+ PrepMethodsDialog *prepMethodsPanel;
+ IngredientMatcherDialog *ingredientMatcherPanel;
+
+ // public methods
+ void createNewRecipe( void );
+ void createNewElement( void );
+
+ void exportRecipes( const TQValueList<int> &ids );
+
+private:
+
+ // Internal methods
+ TQString checkCorrectDBType( TDEConfig *config );
+ void initializeData( const TQString &host, const TQString &dbName, const TQString &user, const TQString &pass, int port );
+ void initDatabase( TDEConfig *config );
+ bool questionRerunWizard( const TQString &message, const TQString &error = "" );
+ void setupUserPermissions( const TQString &host, const TQString &client, const TQString &dbName, const TQString &newUser, const TQString &newPass, const TQString &adminUser = TQString::null, const TQString &adminPass = TQString::null, int port = 0 );
+ void wizard( bool force = false );
+
+
+
+ // Widgets
+ TQHBox *splitter;
+ KreMenu *leftPanel;
+ MenuId dataMenu;
+ PanelDeco *rightPanel;
+ TQPtrList<KreMenuButton> *buttonsList;
+ KreMenuButton *button0;
+ KreMenuButton *button1;
+ KreMenuButton *button2;
+ KreMenuButton *button3;
+ KreMenuButton *button4;
+ KreMenuButton *button5;
+ KreMenuButton *button6;
+ KreMenuButton *button7;
+ KreMenuButton *button8;
+ KreMenuButton *button9;
+ TQPushButton* contextButton;
+
+ KreMenuButton *recipeButton;
+ TQWidget *recipeWidget;
+
+ // Internal variables
+ TQString dbType;
+ KrePanel m_activePanel;
+
+ TQMap<TQWidget*, KrePanel> panelMap;
+
+ // i18n
+ void translate();
+
+
+signals:
+ void enableSaveOption( bool en );
+ void recipeSelected( bool );
+
+public slots:
+ bool save( void );
+ void exportRecipe();
+ void exportToClipboard();
+ void reloadDisplay();
+ virtual void reload();
+ void activateContextHelp();
+
+private slots:
+ void actionRecipe( int recipeID, int action );
+ void actionRecipes( const TQValueList<int> &ids, int action );
+ void addRecipeButton( TQWidget *w, const TQString &title );
+ void closeRecipe( void );
+ void showRecipe( int recipeID );
+ void showRecipes( const TQValueList<int> &recipeIDs );
+ void slotSetTitle( const TQString& title );
+ void slotSetPanel( KrePanel );
+ void switchToRecipe( void );
+ void createShoppingListFromDiet( void );
+ void moveTipButton( int, int );
+ void resizeRightPane( int lpw, int lph );
+ void panelRaised( TQWidget *w, TQWidget *old_w );
+ void editRecipe();
+};
+
+
+#endif // KRECIPESVIEW_H