#ifndef LC_WIDGETFACTORY_H #define LC_WIDGETFACTORY_H #include #include #include class QMenu; class QAction; class QMenuBar; class QToolBar; class QActionGroup; class QG_PenToolBar; class QG_SnapToolBar; class QG_LayerWidget; class QG_BlockWidget; class QG_ActionHandler; class QG_LibraryWidget; class QG_CommandWidget; class LC_CustomToolbar; class QC_ApplicationWindow; class LC_ActionGroupManager; /** * creates the widgets and adds them to the main window; * it also "tags" a few widgets that the main window uses */ class LC_WidgetFactory : public QObject { Q_OBJECT public: LC_WidgetFactory(QC_ApplicationWindow* main_win, QMap& action_map, LC_ActionGroupManager* agm); void createStandardToolbars(QG_ActionHandler* action_handler); void createCADToolbars(); void createMenus(QMenuBar* menu_bar); void createLeftSidebar(int columns, int icon_size); void createRightSidebar(QG_ActionHandler* action_handler); QToolBar* createCategoriesToolbar(); // --- tagged widgets --- QG_SnapToolBar* snap_toolbar; QG_PenToolBar* pen_toolbar; QToolBar* options_toolbar; QG_LayerWidget* layer_widget; QG_BlockWidget* block_widget; QG_LibraryWidget* library_widget; QG_CommandWidget* command_widget; QMenu* file_menu; QMenu* windows_menu; private: QC_ApplicationWindow* main_window; QMap& a_map; LC_ActionGroupManager* ag_manager; QList file_actions; QList line_actions; QList circle_actions; QList curve_actions; QList ellipse_actions; QList polyline_actions; QList select_actions; QList dimension_actions; QList modify_actions; QList info_actions; QList layer_actions; QList block_actions; }; #endif // LC_WIDGETFACTORY_H