File: task_bar_icon_wrapper.cpp

package info (click to toggle)
codelite 14.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 112,816 kB
  • sloc: cpp: 483,662; ansic: 150,144; php: 9,569; lex: 4,186; python: 3,417; yacc: 2,820; sh: 1,147; makefile: 52; xml: 13
file content (78 lines) | stat: -rw-r--r-- 3,109 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "task_bar_icon_wrapper.h"
#include "allocator_mgr.h"
#include "bitmap_picker_property.h"
#include "choice_property.h"
#include "wxc_bitmap_code_generator.h"
#include "wxgui_defs.h"
#include "wxgui_helpers.h"
#include <wx/taskbar.h>

TaskBarIconWrapper::TaskBarIconWrapper()
    : wxcWidget(ID_WXTASKBARICON)
{
    m_styles.Clear();
    AddText(PROP_TOOLTIP, _("Set the wxTaskBarIcon tooltip"));
    wxArrayString types;
    types.Add("wxTBI_DEFAULT_TYPE");
    types.Add("wxTBI_DOCK");
    types.Add("wxTBI_CUSTOM_STATUSITEM");

    SetPropertyString(_("Common Settings"), "wxTaskBarIcon");
    AddProperty(
        new ChoiceProperty(PROP_TASKBAR_ICONTYPE, types, 0, _("The iconType is only applicable on wxOSX_Cocoa")));
    AddProperty(new BitmapPickerProperty(PROP_BITMAP_PATH, "", _("Set the wxTaskBarIcon icon")));

    RegisterEvent("wxEVT_TASKBAR_MOVE", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_MOVE event"));
    RegisterEvent("wxEVT_TASKBAR_LEFT_DOWN", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_LEFT_DOWN event"));
    RegisterEvent("wxEVT_TASKBAR_LEFT_UP", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_LEFT_UP event"));
    RegisterEvent("wxEVT_TASKBAR_RIGHT_DOWN", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_RIGHT_DOWN event"));
    RegisterEvent("wxEVT_TASKBAR_RIGHT_UP", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_RIGHT_UP event"));
    RegisterEvent("wxEVT_TASKBAR_LEFT_DCLICK", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_LEFT_DCLICK event"));
    RegisterEvent("wxEVT_TASKBAR_RIGHT_DCLICK", "wxTaskBarIconEvent", _("Process a wxEVT_TASKBAR_RIGHT_DCLICK event"));

    m_namePattern = "m_taskBarIcon";
    SetName(GenerateName());
}

TaskBarIconWrapper::~TaskBarIconWrapper() {}

wxcWidget* TaskBarIconWrapper::Clone() const { return new TaskBarIconWrapper(); }

wxString TaskBarIconWrapper::CppCtorCode() const
{
    wxString bmp = PropertyFile(PROP_BITMAP_PATH);
    wxcCodeGeneratorHelper::Get().AddBitmap(bmp);

    wxString code;
    code << GetName() << " = new " << GetRealClassName() << "(" << PropertyString(PROP_TASKBAR_ICONTYPE) << ");\n";
    if(!bmp.IsEmpty()) {
        code << "{\n";
        code << "    wxIcon icn;\n";
        code << "    icn.CopyFromBitmap(" << wxcCodeGeneratorHelper::Get().BitmapCode(PropertyFile(PROP_BITMAP_PATH))
             << ");\n";
        code << "    " << GetName() << "->SetIcon(icn, " << wxCrafter::UNDERSCORE(PropertyString(PROP_TOOLTIP))
             << ");\n";
        code << "}\n";
    }
    return code;
}

wxString TaskBarIconWrapper::CppDtorCode() const
{
    wxString code;
    code << "wxDELETE(" << GetName() << ");\n";
    return code;
}

void TaskBarIconWrapper::GetIncludeFile(wxArrayString& headers) const { headers.Add("#include <wx/taskbar.h>"); }

wxString TaskBarIconWrapper::GetWxClassName() const { return "wxTaskBarIcon"; }

void TaskBarIconWrapper::ToXRC(wxString& text, XRC_TYPE type) const
{
    // No preview support for wxTaskBarIcon
    wxUnusedVar(text);
    wxUnusedVar(type);
}

bool TaskBarIconWrapper::IsLicensed() const { return wxcSettings::Get().IsLicensed(); }