~ted/inkscape/polygonarea

« back to all changes in this revision

Viewing changes to src/ui/uxmanager.cpp

  • Committer: Jon A. Cruz
  • Date: 2010-01-10 11:22:05 UTC
  • Revision ID: jon@joncruz.org-20100110112205-dspiq3h4bo9znq6l
Completed base code to flip toolbox orientation.
Basic integration of task switching control.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
# include "config.h"
14
14
#endif
15
15
 
 
16
#include <algorithm>
 
17
 
16
18
#include "uxmanager.h"
17
19
#include "util/ege-tags.h"
18
20
#include "widgets/toolbox.h"
 
21
#include "widgets/desktop-widget.h"
 
22
 
 
23
using std::map;
 
24
using std::vector;
 
25
 
 
26
static vector<SPDesktop*> desktops;
 
27
static vector<SPDesktopWidget*> dtws;
 
28
static map<SPDesktop*, vector<GtkWidget*> > trackedBoxes;
 
29
 
 
30
 
19
31
 
20
32
namespace Inkscape {
21
33
namespace UI {
44
56
{
45
57
}
46
58
 
47
 
 
48
 
void UXManager::connectToDesktop( std::vector<GtkWidget *> const & toolboxes, SPDesktop *desktop )
49
 
{
50
 
    for (std::vector<GtkWidget*>::const_iterator it = toolboxes.begin(); it != toolboxes.end(); ++it ) {
51
 
        ToolboxFactory::setToolboxDesktop( *it, desktop );
 
59
void UXManager::setTask(SPDesktop* dt, gint val)
 
60
{
 
61
    GtkOrientation orientation = (val == 0)? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
 
62
    for (vector<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it) {
 
63
        if ((*it)->desktop == dt) {
 
64
            vector<GtkWidget*>& boxes = trackedBoxes[dt];
 
65
            for (vector<GtkWidget*>::iterator it2 = boxes.begin(); it2 != boxes.end(); ++it2) {
 
66
                gint id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(*it2), "BarIdValue"));
 
67
                if (id != 1) {
 
68
                    //ToolboxFactory::setOrientation(*it2, orientation);
 
69
                }
 
70
            }
 
71
            break;
 
72
        }
 
73
    }
 
74
}
 
75
 
 
76
 
 
77
void UXManager::addTrack( SPDesktopWidget* dtw )
 
78
{
 
79
    if (std::find(dtws.begin(), dtws.end(), dtw) == dtws.end()) {
 
80
        dtws.push_back(dtw);
 
81
    }
 
82
}
 
83
 
 
84
void UXManager::delTrack( SPDesktopWidget* dtw )
 
85
{
 
86
    vector<SPDesktopWidget*>::iterator iter = std::find(dtws.begin(), dtws.end(), dtw);
 
87
    if (iter != dtws.end()) {
 
88
        dtws.erase(iter);
 
89
    }
 
90
}
 
91
 
 
92
void UXManager::connectToDesktop( vector<GtkWidget *> const & toolboxes, SPDesktop *desktop )
 
93
{
 
94
//static map<SPDesktop*, vector<GtkWidget*> > trackedBoxes;
 
95
 
 
96
    for (vector<GtkWidget*>::const_iterator it = toolboxes.begin(); it != toolboxes.end(); ++it ) {
 
97
        GtkWidget* toolbox = *it;
 
98
        ToolboxFactory::setToolboxDesktop( toolbox, desktop );
 
99
 
 
100
        vector<GtkWidget*>& tracked = trackedBoxes[desktop];
 
101
        if (find(tracked.begin(), tracked.end(), toolbox) == tracked.end()) {
 
102
            tracked.push_back(toolbox);
 
103
        }
 
104
    }
 
105
 
 
106
    if (std::find(desktops.begin(), desktops.end(), desktop) == desktops.end()) {
 
107
        desktops.push_back(desktop);
52
108
    }
53
109
}
54
110