|
|
@@ -53,12 +53,12 @@ |
|
|
|
#include <IOKit/hidsystem/IOHIDParameter.h> |
|
|
|
#endif |
|
|
|
|
|
|
|
#include "MonitorArrangement.h" |
|
|
|
#include "Fl_Monitor_Arrangement.h" |
|
|
|
|
|
|
|
static std::set<MonitorArrangement *> instances; |
|
|
|
static std::set<Fl_Monitor_Arrangement *> instances; |
|
|
|
static const Fl_Boxtype FL_CHECKERED_BOX = FL_FREE_BOXTYPE; |
|
|
|
|
|
|
|
MonitorArrangement::MonitorArrangement( |
|
|
|
Fl_Monitor_Arrangement::Fl_Monitor_Arrangement( |
|
|
|
int x, int y, int w, int h) |
|
|
|
: Fl_Group(x, y, w, h), |
|
|
|
SELECTION_COLOR(fl_lighter(FL_BLUE)), |
|
|
@@ -77,7 +77,7 @@ MonitorArrangement::MonitorArrangement( |
|
|
|
end(); |
|
|
|
} |
|
|
|
|
|
|
|
MonitorArrangement::~MonitorArrangement() |
|
|
|
Fl_Monitor_Arrangement::~Fl_Monitor_Arrangement() |
|
|
|
{ |
|
|
|
instances.erase(this); |
|
|
|
|
|
|
@@ -85,7 +85,7 @@ MonitorArrangement::~MonitorArrangement() |
|
|
|
Fl::remove_handler(fltk_event_handler); |
|
|
|
} |
|
|
|
|
|
|
|
std::set<int> MonitorArrangement::get() |
|
|
|
std::set<int> Fl_Monitor_Arrangement::get() |
|
|
|
{ |
|
|
|
std::set<int> indices; |
|
|
|
MonitorMap::const_iterator iter; |
|
|
@@ -98,7 +98,7 @@ std::set<int> MonitorArrangement::get() |
|
|
|
return indices; |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::set(std::set<int> indices) |
|
|
|
void Fl_Monitor_Arrangement::set(std::set<int> indices) |
|
|
|
{ |
|
|
|
MonitorMap::const_iterator iter; |
|
|
|
|
|
|
@@ -109,7 +109,7 @@ void MonitorArrangement::set(std::set<int> indices) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::draw() |
|
|
|
void Fl_Monitor_Arrangement::draw() |
|
|
|
{ |
|
|
|
MonitorMap::const_iterator iter; |
|
|
|
|
|
|
@@ -129,7 +129,7 @@ void MonitorArrangement::draw() |
|
|
|
Fl_Group::draw(); |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::layout() |
|
|
|
void Fl_Monitor_Arrangement::layout() |
|
|
|
{ |
|
|
|
int x, y, w, h; |
|
|
|
double scale = this->scale(); |
|
|
@@ -173,7 +173,7 @@ void MonitorArrangement::layout() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::refresh() |
|
|
|
void Fl_Monitor_Arrangement::refresh() |
|
|
|
{ |
|
|
|
// The selection state is only saved persistently when "OK" is |
|
|
|
// pressed. We need to manually restore the current selection |
|
|
@@ -192,7 +192,7 @@ void MonitorArrangement::refresh() |
|
|
|
redraw(); |
|
|
|
} |
|
|
|
|
|
|
|
bool MonitorArrangement::is_required(int m) |
|
|
|
bool Fl_Monitor_Arrangement::is_required(int m) |
|
|
|
{ |
|
|
|
// A selected monitor is never required. |
|
|
|
if (monitors[m]->value() == 1) |
|
|
@@ -258,7 +258,7 @@ bool MonitorArrangement::is_required(int m) |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
double MonitorArrangement::scale() |
|
|
|
double Fl_Monitor_Arrangement::scale() |
|
|
|
{ |
|
|
|
const int MARGIN = 20; |
|
|
|
std::pair<int, int> size = this->size(); |
|
|
@@ -274,7 +274,7 @@ double MonitorArrangement::scale() |
|
|
|
return s_w; |
|
|
|
} |
|
|
|
|
|
|
|
std::pair<int, int> MonitorArrangement::size() |
|
|
|
std::pair<int, int> Fl_Monitor_Arrangement::size() |
|
|
|
{ |
|
|
|
int x, y, w, h; |
|
|
|
int top, bottom, left, right; |
|
|
@@ -305,7 +305,7 @@ std::pair<int, int> MonitorArrangement::size() |
|
|
|
return std::make_pair(x_max - x_min, y_max - y_min); |
|
|
|
} |
|
|
|
|
|
|
|
std::pair<int, int> MonitorArrangement::offset() |
|
|
|
std::pair<int, int> Fl_Monitor_Arrangement::offset() |
|
|
|
{ |
|
|
|
double scale = this->scale(); |
|
|
|
std::pair<int, int> size = this->size(); |
|
|
@@ -317,7 +317,7 @@ std::pair<int, int> MonitorArrangement::offset() |
|
|
|
return std::make_pair(offset_x + abs(origin.first)*scale, offset_y + abs(origin.second)*scale); |
|
|
|
} |
|
|
|
|
|
|
|
std::pair<int, int> MonitorArrangement::origin() |
|
|
|
std::pair<int, int> Fl_Monitor_Arrangement::origin() |
|
|
|
{ |
|
|
|
int x, y, w, h, ox, oy; |
|
|
|
ox = oy = 0; |
|
|
@@ -335,7 +335,7 @@ std::pair<int, int> MonitorArrangement::origin() |
|
|
|
return std::make_pair(ox, oy); |
|
|
|
} |
|
|
|
|
|
|
|
std::string MonitorArrangement::description(int m) |
|
|
|
std::string Fl_Monitor_Arrangement::description(int m) |
|
|
|
{ |
|
|
|
std::string name; |
|
|
|
int x, y, w, h; |
|
|
@@ -364,7 +364,7 @@ static BOOL CALLBACK EnumDisplayMonitorsCallback( |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
std::string MonitorArrangement::get_monitor_name(int m) |
|
|
|
std::string Fl_Monitor_Arrangement::get_monitor_name(int m) |
|
|
|
{ |
|
|
|
#if defined(WIN32) |
|
|
|
std::set<HMONITOR> sys_monitors; |
|
|
@@ -530,9 +530,9 @@ std::string MonitorArrangement::get_monitor_name(int m) |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
int MonitorArrangement::fltk_event_handler(int event) |
|
|
|
int Fl_Monitor_Arrangement::fltk_event_handler(int event) |
|
|
|
{ |
|
|
|
std::set<MonitorArrangement *>::iterator it; |
|
|
|
std::set<Fl_Monitor_Arrangement *>::iterator it; |
|
|
|
|
|
|
|
if (event != FL_SCREEN_CONFIGURATION_CHANGED) |
|
|
|
return 0; |
|
|
@@ -543,9 +543,9 @@ int MonitorArrangement::fltk_event_handler(int event) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::monitor_pressed(Fl_Widget *widget, void *user_data) |
|
|
|
void Fl_Monitor_Arrangement::monitor_pressed(Fl_Widget *widget, void *user_data) |
|
|
|
{ |
|
|
|
MonitorArrangement *self = (MonitorArrangement *) user_data; |
|
|
|
Fl_Monitor_Arrangement *self = (Fl_Monitor_Arrangement *) user_data; |
|
|
|
|
|
|
|
// When a monitor is selected, FLTK changes the state of it for us. |
|
|
|
// However, selecting a monitor might implicitly change the state of |
|
|
@@ -555,7 +555,7 @@ void MonitorArrangement::monitor_pressed(Fl_Widget *widget, void *user_data) |
|
|
|
self->redraw(); |
|
|
|
} |
|
|
|
|
|
|
|
void MonitorArrangement::checkered_pattern_draw( |
|
|
|
void Fl_Monitor_Arrangement::checkered_pattern_draw( |
|
|
|
int x, int y, int width, int height, Fl_Color color) |
|
|
|
{ |
|
|
|
bool draw_checker = false; |