initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
253
libs/wxWidgets-3.3.1/include/wx/taskbarbutton.h
Normal file
253
libs/wxWidgets-3.3.1/include/wx/taskbarbutton.h
Normal file
@@ -0,0 +1,253 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: include/taskbarbutton.h
|
||||
// Purpose: Defines wxTaskBarButton class for manipulating buttons on the
|
||||
// windows taskbar.
|
||||
// Author: Chaobin Zhang <zhchbin@gmail.com>
|
||||
// Created: 2014-04-30
|
||||
// Copyright: (c) 2014 wxWidgets development team
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_TASKBARBUTTON_H_
|
||||
#define _WX_TASKBARBUTTON_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#if wxUSE_TASKBARBUTTON
|
||||
|
||||
#include "wx/icon.h"
|
||||
#include "wx/string.h"
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxTaskBarButton;
|
||||
class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpListCategory;
|
||||
class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpList;
|
||||
class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpListImpl;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTaskBarButton: define wxTaskBarButton interface.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
State of the task bar button.
|
||||
*/
|
||||
enum wxTaskBarButtonState
|
||||
{
|
||||
wxTASKBAR_BUTTON_NO_PROGRESS = 0,
|
||||
wxTASKBAR_BUTTON_INDETERMINATE = 1,
|
||||
wxTASKBAR_BUTTON_NORMAL = 2,
|
||||
wxTASKBAR_BUTTON_ERROR = 4,
|
||||
wxTASKBAR_BUTTON_PAUSED = 8
|
||||
};
|
||||
|
||||
class WXDLLIMPEXP_CORE wxThumbBarButton : public wxObject
|
||||
{
|
||||
public:
|
||||
wxThumbBarButton() : m_taskBarButtonParent(nullptr)
|
||||
{ }
|
||||
|
||||
wxThumbBarButton(int id,
|
||||
const wxIcon& icon,
|
||||
const wxString& tooltip = wxString(),
|
||||
bool enable = true,
|
||||
bool dismissOnClick = false,
|
||||
bool hasBackground = true,
|
||||
bool shown = true,
|
||||
bool interactive = true);
|
||||
|
||||
bool Create(int id,
|
||||
const wxIcon& icon,
|
||||
const wxString& tooltip = wxString(),
|
||||
bool enable = true,
|
||||
bool dismissOnClick = false,
|
||||
bool hasBackground = true,
|
||||
bool shown = true,
|
||||
bool interactive = true);
|
||||
int GetID() const { return m_id; }
|
||||
const wxIcon& GetIcon() const { return m_icon; }
|
||||
const wxString& GetTooltip() const { return m_tooltip; }
|
||||
|
||||
bool IsEnable() const { return m_enable; }
|
||||
void Enable(bool enable = true);
|
||||
void Disable() { Enable(false); }
|
||||
|
||||
bool IsDismissOnClick() const { return m_dismissOnClick; }
|
||||
void EnableDismissOnClick(bool enable = true);
|
||||
void DisableDimissOnClick() { EnableDismissOnClick(false); }
|
||||
|
||||
bool HasBackground() const { return m_hasBackground; }
|
||||
void SetHasBackground(bool has = true);
|
||||
|
||||
bool IsShown() const { return m_shown; }
|
||||
void Show(bool shown = true);
|
||||
void Hide() { Show(false); }
|
||||
|
||||
bool IsInteractive() const { return m_interactive; }
|
||||
void SetInteractive(bool interactive = true);
|
||||
|
||||
void SetParent(wxTaskBarButton *parent) { m_taskBarButtonParent = parent; }
|
||||
wxTaskBarButton* GetParent() const { return m_taskBarButtonParent; }
|
||||
|
||||
private:
|
||||
bool UpdateParentTaskBarButton();
|
||||
|
||||
int m_id;
|
||||
wxIcon m_icon;
|
||||
wxString m_tooltip;
|
||||
bool m_enable;
|
||||
bool m_dismissOnClick;
|
||||
bool m_hasBackground;
|
||||
bool m_shown;
|
||||
bool m_interactive;
|
||||
wxTaskBarButton *m_taskBarButtonParent;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxThumbBarButton);
|
||||
};
|
||||
|
||||
class WXDLLIMPEXP_CORE wxTaskBarButton
|
||||
{
|
||||
public:
|
||||
// Factory function, may return nullptr if task bar buttons are not supported
|
||||
// by the current system.
|
||||
static wxTaskBarButton* New(wxWindow* parent);
|
||||
|
||||
virtual ~wxTaskBarButton() = default;
|
||||
|
||||
// Operations:
|
||||
virtual void SetProgressRange(int range) = 0;
|
||||
virtual void SetProgressValue(int value) = 0;
|
||||
virtual void PulseProgress() = 0;
|
||||
virtual void Show(bool show = true) = 0;
|
||||
virtual void Hide() = 0;
|
||||
virtual void SetThumbnailTooltip(const wxString& tooltip) = 0;
|
||||
virtual void SetProgressState(wxTaskBarButtonState state) = 0;
|
||||
virtual void SetOverlayIcon(const wxIcon& icon,
|
||||
const wxString& description = wxString()) = 0;
|
||||
virtual void SetThumbnailClip(const wxRect& rect) = 0;
|
||||
virtual void SetThumbnailContents(const wxWindow *child) = 0;
|
||||
virtual bool InsertThumbBarButton(size_t pos, wxThumbBarButton *button) = 0;
|
||||
virtual bool AppendThumbBarButton(wxThumbBarButton *button) = 0;
|
||||
virtual bool AppendSeparatorInThumbBar() = 0;
|
||||
virtual wxThumbBarButton* RemoveThumbBarButton(wxThumbBarButton *button) = 0;
|
||||
virtual wxThumbBarButton* RemoveThumbBarButton(int id) = 0;
|
||||
virtual void Realize() = 0;
|
||||
|
||||
protected:
|
||||
wxTaskBarButton() = default;
|
||||
|
||||
private:
|
||||
wxDECLARE_NO_COPY_CLASS(wxTaskBarButton);
|
||||
};
|
||||
|
||||
enum wxTaskBarJumpListItemType
|
||||
{
|
||||
wxTASKBAR_JUMP_LIST_SEPARATOR,
|
||||
wxTASKBAR_JUMP_LIST_TASK,
|
||||
wxTASKBAR_JUMP_LIST_DESTINATION
|
||||
};
|
||||
|
||||
class WXDLLIMPEXP_CORE wxTaskBarJumpListItem
|
||||
{
|
||||
public:
|
||||
wxTaskBarJumpListItem(wxTaskBarJumpListCategory *parentCategory = nullptr,
|
||||
wxTaskBarJumpListItemType type = wxTASKBAR_JUMP_LIST_SEPARATOR,
|
||||
const wxString& title = wxEmptyString,
|
||||
const wxString& filePath = wxEmptyString,
|
||||
const wxString& arguments = wxEmptyString,
|
||||
const wxString& tooltip = wxEmptyString,
|
||||
const wxString& iconPath = wxEmptyString,
|
||||
int iconIndex = 0);
|
||||
|
||||
wxTaskBarJumpListItemType GetType() const;
|
||||
void SetType(wxTaskBarJumpListItemType type);
|
||||
const wxString& GetTitle() const;
|
||||
void SetTitle(const wxString& title);
|
||||
const wxString& GetFilePath() const;
|
||||
void SetFilePath(const wxString& filePath);
|
||||
const wxString& GetArguments() const;
|
||||
void SetArguments(const wxString& arguments);
|
||||
const wxString& GetTooltip() const;
|
||||
void SetTooltip(const wxString& tooltip);
|
||||
const wxString& GetIconPath() const;
|
||||
void SetIconPath(const wxString& iconPath);
|
||||
int GetIconIndex() const;
|
||||
void SetIconIndex(int iconIndex);
|
||||
wxTaskBarJumpListCategory* GetCategory() const;
|
||||
void SetCategory(wxTaskBarJumpListCategory *category);
|
||||
|
||||
private:
|
||||
wxTaskBarJumpListCategory *m_parentCategory;
|
||||
wxTaskBarJumpListItemType m_type;
|
||||
wxString m_title;
|
||||
wxString m_filePath;
|
||||
wxString m_arguments;
|
||||
wxString m_tooltip;
|
||||
wxString m_iconPath;
|
||||
int m_iconIndex;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpListItem);
|
||||
};
|
||||
|
||||
typedef wxVector<wxTaskBarJumpListItem*> wxTaskBarJumpListItems;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxTaskBarJumpListCategory
|
||||
{
|
||||
public:
|
||||
wxTaskBarJumpListCategory(wxTaskBarJumpList *parent = nullptr,
|
||||
const wxString& title = wxEmptyString);
|
||||
virtual ~wxTaskBarJumpListCategory();
|
||||
|
||||
wxTaskBarJumpListItem* Append(wxTaskBarJumpListItem *item);
|
||||
void Delete(wxTaskBarJumpListItem *item);
|
||||
wxTaskBarJumpListItem* Remove(wxTaskBarJumpListItem *item);
|
||||
wxTaskBarJumpListItem* FindItemByPosition(size_t pos) const;
|
||||
wxTaskBarJumpListItem* Insert(size_t pos, wxTaskBarJumpListItem *item);
|
||||
wxTaskBarJumpListItem* Prepend(wxTaskBarJumpListItem *item);
|
||||
void SetTitle(const wxString& title);
|
||||
const wxString& GetTitle() const;
|
||||
const wxTaskBarJumpListItems& GetItems() const;
|
||||
|
||||
private:
|
||||
friend class wxTaskBarJumpListItem;
|
||||
|
||||
void Update();
|
||||
|
||||
wxTaskBarJumpList *m_parent;
|
||||
wxTaskBarJumpListItems m_items;
|
||||
wxString m_title;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpListCategory);
|
||||
};
|
||||
|
||||
typedef wxVector<wxTaskBarJumpListCategory*> wxTaskBarJumpListCategories;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxTaskBarJumpList
|
||||
{
|
||||
public:
|
||||
explicit wxTaskBarJumpList(const wxString& appID = wxEmptyString);
|
||||
virtual ~wxTaskBarJumpList();
|
||||
void ShowRecentCategory(bool shown = true);
|
||||
void HideRecentCategory();
|
||||
void ShowFrequentCategory(bool shown = true);
|
||||
void HideFrequentCategory();
|
||||
|
||||
wxTaskBarJumpListCategory& GetTasks() const;
|
||||
const wxTaskBarJumpListCategory& GetFrequentCategory() const;
|
||||
const wxTaskBarJumpListCategory& GetRecentCategory() const;
|
||||
const wxTaskBarJumpListCategories& GetCustomCategories() const;
|
||||
|
||||
void AddCustomCategory(wxTaskBarJumpListCategory* category);
|
||||
wxTaskBarJumpListCategory* RemoveCustomCategory(const wxString& title);
|
||||
void DeleteCustomCategory(const wxString& title);
|
||||
|
||||
private:
|
||||
friend class wxTaskBarJumpListCategory;
|
||||
|
||||
void Update();
|
||||
wxTaskBarJumpListImpl *m_jumpListImpl;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpList);
|
||||
};
|
||||
|
||||
#endif // wxUSE_TASKBARBUTTON
|
||||
|
||||
#endif // _WX_TASKBARBUTTON_H_
|
||||
Reference in New Issue
Block a user