You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
krusader/krusader/panelmanager.h

80 lines
2.4 KiB

#ifndef _PANEL_MANAGER_H
#define _PANEL_MANAGER_H
#include <tqwidget.h>
#include <tqlayout.h>
#include "paneltabbar.h"
class TDEConfig;
class ListPanel;
class TQWidgetStack;
class TQToolButton;
/**
* Implements tabbed-browsing by managing a list of tabs and corrosponding panels.
*/
class PanelManager: public TQWidget {
Q_OBJECT
public:
/**
* PanelManager is created where once panels were created. It accepts three references to pointers
* (self, other, active), which enables it to manage pointers held by the panels transparently.
* It also receives a bool (left) which is true if the manager is the left one, or false otherwise.
*/
PanelManager( TQWidget *parent, bool left );
/**
* Called once by KrusaderView to create the first panel. Subsequent called are done internally
* Note: only creates the panel, but doesn't start the VFS inside it. Use startPanel() for that.
*/
ListPanel* createPanel( TQString type, bool setCurrent = true );
/**
* Called once by KrusaderView to start the first panel. Subsequent called are done internally
* Only starts the VFS inside the panel, you must first use createPanel() !
*/
void startPanel(ListPanel *panel, const KURL& path);
/**
* Swaps the left / right directions of the panel
*/
void swapPanels();
void saveSettings(TDEConfig *config, const TQString& key, bool localOnly = true );
void loadSettings(TDEConfig *config, const TQString& key);
int activeTab();
void setActiveTab( int );
void setCurrentTab( int );
void refreshAllTabs( bool invalidate = false );
public slots:
/**
* Called externally to start a new tab. Example of usage would be the "open in a new tab"
* action, from the context-menu.
*/
void slotNewTab(const KURL& url, bool setCurrent = true, TQString type = TQString(), int props = 0 );
void slotNewTab();
void slotNextTab();
void slotPreviousTab();
void slotCloseTab();
void slotCloseTab( int index );
void slotRecreatePanels();
protected slots:
void slotChangePanel(ListPanel *p);
void slotRefreshActions();
private:
void deletePanel( ListPanel *p );
TQGridLayout *_layout;
TQHBoxLayout *_barLayout;
bool _left;
PanelTabBar *_tabbar;
TQWidgetStack *_stack;
TQToolButton *_newTab, *_closeTab;
ListPanel **_selfPtr, **_otherPtr;
};
#endif // _PANEL_MANAGER_H