libcdos-fw
CFPlacesSidebar.h
1 // Copyright 2017, CDOS.
2 // All rights reserved.
3 //
4 // Author: CDOS Support Team <support_os@sari.ac.cn>
5 //
6 // CFPlacesSidebar that displays frequently-used places in the file system.
10 #ifndef __CF_PLACESSIDEBAR_H__
11 #define __CF_PLACESSIDEBAR_H__
12 
13 #include "Gui/CFScrolledView.h"
14 #include <giomm.h>
15 #include "Gui/CFMenu.h"
16 #include <gdkmm.h>
17 #include <iostream>
18 
19 CF_NAMESPACE_BEGIN
20 
32 class CFPlacesSidebarPriv;
34 public:
39 
46  virtual ~CFPlacesSidebar();
47 
54 
61 
69  void setLocation(Glib::RefPtr<Gio::File>& file);
70 
76  Glib::RefPtr<Gio::File> getLocation();
77 
83  void setShowDesktop(bool show_desktop = true);
84 
90  bool getShowDesktop();
91 
97  void addShortcut(const Glib::RefPtr<Gio::File>& location);
98 
104  void removeShortcut(const Glib::RefPtr<Gio::File>& location);
105 
112  std::vector<Glib::RefPtr<Gio::File>> listShortcuts();
113 
121  void setShowConnectToServer(bool show_connect_to_server = true);
122 
130  bool getShowConnectToServer();
131 
132 public:
146  sigc::signal<int,
147  const Glib::RefPtr<Gdk::DragContext>&,
148  const Glib::RefPtr<Gio::File>&,
149  const std::vector<Glib::RefPtr<Gio::File>>&>
151 
167  sigc::signal<void,
168  const Glib::RefPtr<Gio::File>&,
169  const std::vector<Glib::RefPtr<Gio::File>>&,
170  int>
172 
181  sigc::signal<int, int> signalDragActionAsk();
182 
193  sigc::signal<void, const Glib::RefPtr<Gio::File>&, CFPlacesOpenFlags>
195 
202  sigc::signal<void, CFPlacesOpenFlags> signalShowOtherLocationsWithFlags();
203 
210  sigc::signal<void,
211  CFMenu*,
212  const Glib::RefPtr<Gio::File>&,
213  const Glib::RefPtr<Gio::Volume>&>
215 
221  sigc::signal<void> signalShowConnectToServer();
222 
229  sigc::signal<void, const Glib::ustring&, const Glib::ustring&>
231 
238  sigc::signal<void> signalShowEnterLocation();
239 
246  sigc::signal<void> signalShowOtherLocations();
247 
254  sigc::signal<void, const Glib::RefPtr<Gio::MountOperation>&> signalMount();
255 
262  sigc::signal<void, const Glib::RefPtr<Gio::MountOperation>&>
263  signalUnmount();
264 
265 protected:
266  virtual void onRealObjectInit();
267 
268  virtual void onRealObjectFinalize();
269 
270  int onDragActionRequestd(
271  const Glib::RefPtr<Gdk::DragContext>& context,
272  const Glib::RefPtr<Gio::File>& dest_file,
273  const std::vector<Glib::RefPtr<Gio::File>>& source_file_list);
274 
275  void onDragPerformDrop(
276  const Glib::RefPtr<Gio::File>& dest_file,
277  const std::vector<Glib::RefPtr<Gio::File>>& source_file_list,
278  int action);
279 
280  int onDragActionAsk(int actions);
281 
282  void onShowConnectToServer();
283 
284  void onShowErrorMessage(const Glib::ustring& primary,
285  const Glib::ustring& secondary);
286 
287  void onShowEnterLocation();
288 
289  void onShowOtherLocations();
290 
291  void onMount(const Glib::RefPtr<Gio::MountOperation>& mount_operation);
292 
293  void onUnmount(const Glib::RefPtr<Gio::MountOperation>& mount_operation);
294 
295 private:
296  sigc::signal<int,
297  const Glib::RefPtr<Gdk::DragContext>&,
298  const Glib::RefPtr<Gio::File>&,
299  const std::vector<Glib::RefPtr<Gio::File>>&>
300  m_dragActionRequestedSignal;
301 
302  sigc::signal<void,
303  const Glib::RefPtr<Gio::File>&,
304  const std::vector<Glib::RefPtr<Gio::File>>&,
305  int>
306  m_dragPerformDropSignal;
307 
308  sigc::signal<int, int> m_dragActionAskSignal;
309 
310  sigc::signal<void> m_showConnectToServerSignal;
311 
312  sigc::signal<void, const Glib::ustring&, const Glib::ustring&>
313  m_showErrorMessageSignal;
314 
315  sigc::signal<void> m_showEnterLocationSignal;
316 
317  sigc::signal<void> m_showOtherLocationsSignal;
318 
319  sigc::signal<void, const Glib::RefPtr<Gio::MountOperation>&> m_mountSignal;
320 
321  sigc::signal<void, const Glib::RefPtr<Gio::MountOperation>&>
322  m_unmountSignal;
323 
324  // for CFPlacesSidebarPriv
325  CFPlacesSidebarPriv* m_priv;
326 
327  sigc::signal<void, const Glib::RefPtr<Gio::File>&, CFPlacesOpenFlags>
328  m_openLocationSignal;
329 
330  sigc::signal<void, CFPlacesOpenFlags> m_showOtherLocationsWithFlagsSignal;
331 
332  sigc::signal<void,
333  CFMenu*,
334  const Glib::RefPtr<Gio::File>&,
335  const Glib::RefPtr<Gio::Volume>&>
336  m_polulatePopupSignal;
337 };
338 
339 CF_NAMESPACE_END
340 
341 #endif // __CF_PLACESSIDEBAR_H__
sigc::signal< void, CFPlacesOpenFlags > signalShowOtherLocationsWithFlags()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
sigc::signal< void, CFMenu *, const Glib::RefPtr< Gio::File > &, const Glib::RefPtr< Gio::Volume > & > signalPolulatePopup()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
virtual ~CFPlacesSidebar()
析构函数.
virtual void onRealObjectFinalize()
对象解除绑定前的回调函数。
virtual void onRealObjectInit()
对象绑定后进行初始化的回调函数。
bool getShowDesktop()
获取 CFPlacesSidebar 的是否有桌面文件夹显示
void setLocation(Glib::RefPtr< Gio::File > &file)
获取 CFPlacesSidebar 的地址
sigc::signal< void > signalShowOtherLocations()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
void setOpenFlags(CFPlacesOpenFlags flags=CFPLACES_OPEN_NORMAL)
设置 CFPlacesSidebar 的位置打开方式
std::vector< Glib::RefPtr< Gio::File > > listShortcuts()
获取 CFPlacesSidebar 的快捷方式列表
sigc::signal< int, const Glib::RefPtr< Gdk::DragContext > &, const Glib::RefPtr< Gio::File > &, const std::vector< Glib::RefPtr< Gio::File > > & > signalDragActionRequested()
槽函数类型: int on_my_drag_action_requested( const Glib::RefPtr<Gdk::DragContext>& context...
void addShortcut(const Glib::RefPtr< Gio::File > &location)
添加某些对用户有用的文件夹到侧边栏
CFPlacesOpenFlags
确定滚动条的展示方式
Definition: CFEnums.h:158
CFPlacesSidebar()
默认构造函数.
sigc::signal< void, const Glib::RefPtr< Gio::File > &, CFPlacesOpenFlags > signalOpenLocation()
槽函数类型: int on_my_drag_action_ask(int actions)
Definition: CFMenu.h:10
sigc::signal< void > signalShowConnectToServer()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
sigc::signal< void > signalShowEnterLocation()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
Definition: CFScrolledView.h:19
Glib::RefPtr< Gio::File > getLocation()
获取 CFPlacesSidebar 的当前选中地址
void removeShortcut(const Glib::RefPtr< Gio::File > &location)
从侧边栏中移除快捷方式
sigc::signal< void, const Glib::RefPtr< Gio::MountOperation > & > signalMount()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
bool getShowConnectToServer()
获取 CFPlacesSidebar 是否显示链接网络服务器
void setShowDesktop(bool show_desktop=true)
设置 CFPlacesSidebar 是否在侧边栏显示一个桌面文件夹
这是默认模式,正常方式打开
Definition: CFEnums.h:159
CFPlacesOpenFlags getOpenFlags()
获取 CFPlacesSidebar 的设置位置打开方式
Definition: CFPlacesSidebar.h:33
sigc::signal< void, const Glib::RefPtr< Gio::File > &, const std::vector< Glib::RefPtr< Gio::File > > &, int > signalDragPerformDrop()
槽函数类型: void on_my_drag_perform_drop( const Glib::RefPtr<Gio::File>& dest_file, const std::vector< Glib::RefPtr<Gio::File> >& source_file_list, int action)
sigc::signal< void, const Glib::RefPtr< Gio::MountOperation > & > signalUnmount()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
void setShowConnectToServer(bool show_connect_to_server=true)
设置 CFPlacesSidebar 是否显示一个链接网络服务器,默认是关闭的。
sigc::signal< void, const Glib::ustring &, const Glib::ustring & > signalShowErrorMessage()
槽函数类型: void on_my_xx(CFPlacesSidebar param1);
sigc::signal< int, int > signalDragActionAsk()
槽函数类型: bool on_my_xx(CFPlacesSidebar param1);