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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
|
namespace hiro {
static auto CalculateAlignment(Alignment alignment) -> signed {
signed result = 0;
if(alignment.horizontal() < 0.333) result |= Qt::AlignLeft;
else if(alignment.horizontal() > 0.666) result |= Qt::AlignRight;
else result |= Qt::AlignCenter;
if(alignment.vertical() < 0.333) result |= Qt::AlignTop;
else if(alignment.vertical() > 0.666) result |= Qt::AlignBottom;
else result |= Qt::AlignVCenter;
return result;
}
static auto CreateBrush(Color color) -> QBrush {
return color ? QColor(color.red(), color.green(), color.blue()) : QBrush();
}
static auto CreateIcon(const image& icon, bool scale = false) -> QIcon {
if(!icon) return QIcon();
auto qtBuffer = icon;
qtBuffer.transform();
if(scale) qtBuffer.scale(16, 16, Interpolation::Linear);
QImage qtImage(qtBuffer.data(), qtBuffer.width(), qtBuffer.height(), QImage::Format_ARGB32);
return QIcon(QPixmap::fromImage(qtImage));
}
static auto DropPaths(QDropEvent* event) -> lstring {
QList<QUrl> urls = event->mimeData()->urls();
if(urls.size() == 0) return {};
lstring paths;
for(auto n : range(urls.size())) {
string path{urls[n].path().toUtf8().constData()};
if(!path) continue;
if(directory::exists(path) && !path.endsWith("/")) path.append("/");
paths.append(path);
}
return paths;
}
/*
static auto GetDisplacement(Sizable* sizable) -> Position {
Position position;
while(sizable->state.parent) {
Position displacement = sizable->state.parent->p.displacement();
position.x += displacement.x;
position.y += displacement.y;
sizable = sizable->state.parent;
}
return position;
}
*/
/*
static auto GetParentWidgetLayout(Sizable* sizable) -> Layout* {
while(sizable) {
if(sizable->state.parent && dynamic_cast<TabFrame*>(sizable->state.parent)) return (Layout*)sizable;
sizable = sizable->state.parent;
}
return nullptr;
}
*/
/*
static auto GetParentWidget(Sizable* sizable) -> Widget* {
while(sizable) {
if(sizable->state.parent && dynamic_cast<TabFrame*>(sizable->state.parent)) return (Widget*)sizable->state.parent;
sizable = sizable->state.parent;
}
return nullptr;
}
*/
/*
static auto Keysym(int keysym) -> Keyboard::Keycode {
switch(keysym) {
case XK_Escape: return Keyboard::Keycode::Escape;
case XK_F1: return Keyboard::Keycode::F1;
case XK_F2: return Keyboard::Keycode::F2;
case XK_F3: return Keyboard::Keycode::F3;
case XK_F4: return Keyboard::Keycode::F4;
case XK_F5: return Keyboard::Keycode::F5;
case XK_F6: return Keyboard::Keycode::F6;
case XK_F7: return Keyboard::Keycode::F7;
case XK_F8: return Keyboard::Keycode::F8;
case XK_F9: return Keyboard::Keycode::F9;
case XK_F10: return Keyboard::Keycode::F10;
case XK_F11: return Keyboard::Keycode::F11;
case XK_F12: return Keyboard::Keycode::F12;
case XK_Print: return Keyboard::Keycode::PrintScreen;
//Keyboard::Keycode::SysRq
case XK_Scroll_Lock: return Keyboard::Keycode::ScrollLock;
case XK_Pause: return Keyboard::Keycode::Pause;
//Keyboard::Keycode::Break
case XK_Insert: return Keyboard::Keycode::Insert;
case XK_Delete: return Keyboard::Keycode::Delete;
case XK_Home: return Keyboard::Keycode::Home;
case XK_End: return Keyboard::Keycode::End;
case XK_Prior: return Keyboard::Keycode::PageUp;
case XK_Next: return Keyboard::Keycode::PageDown;
case XK_Up: return Keyboard::Keycode::Up;
case XK_Down: return Keyboard::Keycode::Down;
case XK_Left: return Keyboard::Keycode::Left;
case XK_Right: return Keyboard::Keycode::Right;
case XK_grave: return Keyboard::Keycode::Grave;
case XK_1: return Keyboard::Keycode::Number1;
case XK_2: return Keyboard::Keycode::Number2;
case XK_3: return Keyboard::Keycode::Number3;
case XK_4: return Keyboard::Keycode::Number4;
case XK_5: return Keyboard::Keycode::Number5;
case XK_6: return Keyboard::Keycode::Number6;
case XK_7: return Keyboard::Keycode::Number7;
case XK_8: return Keyboard::Keycode::Number8;
case XK_9: return Keyboard::Keycode::Number9;
case XK_0: return Keyboard::Keycode::Number0;
case XK_minus: return Keyboard::Keycode::Minus;
case XK_equal: return Keyboard::Keycode::Equal;
case XK_BackSpace: return Keyboard::Keycode::Backspace;
case XK_asciitilde: return Keyboard::Keycode::Tilde;
case XK_exclam: return Keyboard::Keycode::Exclamation;
case XK_at: return Keyboard::Keycode::At;
case XK_numbersign: return Keyboard::Keycode::Pound;
case XK_dollar: return Keyboard::Keycode::Dollar;
case XK_percent: return Keyboard::Keycode::Percent;
case XK_asciicircum: return Keyboard::Keycode::Power;
case XK_ampersand: return Keyboard::Keycode::Ampersand;
case XK_asterisk: return Keyboard::Keycode::Asterisk;
case XK_parenleft: return Keyboard::Keycode::ParenthesisLeft;
case XK_parenright: return Keyboard::Keycode::ParenthesisRight;
case XK_underscore: return Keyboard::Keycode::Underscore;
case XK_plus: return Keyboard::Keycode::Plus;
case XK_bracketleft: return Keyboard::Keycode::BracketLeft;
case XK_bracketright: return Keyboard::Keycode::BracketRight;
case XK_backslash: return Keyboard::Keycode::Backslash;
case XK_semicolon: return Keyboard::Keycode::Semicolon;
case XK_apostrophe: return Keyboard::Keycode::Apostrophe;
case XK_comma: return Keyboard::Keycode::Comma;
case XK_period: return Keyboard::Keycode::Period;
case XK_slash: return Keyboard::Keycode::Slash;
case XK_braceleft: return Keyboard::Keycode::BraceLeft;
case XK_braceright: return Keyboard::Keycode::BraceRight;
case XK_bar: return Keyboard::Keycode::Pipe;
case XK_colon: return Keyboard::Keycode::Colon;
case XK_quotedbl: return Keyboard::Keycode::Quote;
case XK_less: return Keyboard::Keycode::CaretLeft;
case XK_greater: return Keyboard::Keycode::CaretRight;
case XK_question: return Keyboard::Keycode::Question;
case XK_Tab: return Keyboard::Keycode::Tab;
case XK_Caps_Lock: return Keyboard::Keycode::CapsLock;
case XK_Return: return Keyboard::Keycode::Return;
case XK_Shift_L: return Keyboard::Keycode::ShiftLeft;
case XK_Shift_R: return Keyboard::Keycode::ShiftRight;
case XK_Control_L: return Keyboard::Keycode::ControlLeft;
case XK_Control_R: return Keyboard::Keycode::ControlRight;
case XK_Super_L: return Keyboard::Keycode::SuperLeft;
case XK_Super_R: return Keyboard::Keycode::SuperRight;
case XK_Alt_L: return Keyboard::Keycode::AltLeft;
case XK_Alt_R: return Keyboard::Keycode::AltRight;
case XK_space: return Keyboard::Keycode::Space;
case XK_Menu: return Keyboard::Keycode::Menu;
case XK_A: return Keyboard::Keycode::A;
case XK_B: return Keyboard::Keycode::B;
case XK_C: return Keyboard::Keycode::C;
case XK_D: return Keyboard::Keycode::D;
case XK_E: return Keyboard::Keycode::E;
case XK_F: return Keyboard::Keycode::F;
case XK_G: return Keyboard::Keycode::G;
case XK_H: return Keyboard::Keycode::H;
case XK_I: return Keyboard::Keycode::I;
case XK_J: return Keyboard::Keycode::J;
case XK_K: return Keyboard::Keycode::K;
case XK_L: return Keyboard::Keycode::L;
case XK_M: return Keyboard::Keycode::M;
case XK_N: return Keyboard::Keycode::N;
case XK_O: return Keyboard::Keycode::O;
case XK_P: return Keyboard::Keycode::P;
case XK_Q: return Keyboard::Keycode::Q;
case XK_R: return Keyboard::Keycode::R;
case XK_S: return Keyboard::Keycode::S;
case XK_T: return Keyboard::Keycode::T;
case XK_U: return Keyboard::Keycode::U;
case XK_V: return Keyboard::Keycode::V;
case XK_W: return Keyboard::Keycode::W;
case XK_X: return Keyboard::Keycode::X;
case XK_Y: return Keyboard::Keycode::Y;
case XK_Z: return Keyboard::Keycode::Z;
case XK_a: return Keyboard::Keycode::a;
case XK_b: return Keyboard::Keycode::b;
case XK_c: return Keyboard::Keycode::c;
case XK_d: return Keyboard::Keycode::d;
case XK_e: return Keyboard::Keycode::e;
case XK_f: return Keyboard::Keycode::f;
case XK_g: return Keyboard::Keycode::g;
case XK_h: return Keyboard::Keycode::h;
case XK_i: return Keyboard::Keycode::i;
case XK_j: return Keyboard::Keycode::j;
case XK_k: return Keyboard::Keycode::k;
case XK_l: return Keyboard::Keycode::l;
case XK_m: return Keyboard::Keycode::m;
case XK_n: return Keyboard::Keycode::n;
case XK_o: return Keyboard::Keycode::o;
case XK_p: return Keyboard::Keycode::p;
case XK_q: return Keyboard::Keycode::q;
case XK_r: return Keyboard::Keycode::r;
case XK_s: return Keyboard::Keycode::s;
case XK_t: return Keyboard::Keycode::t;
case XK_u: return Keyboard::Keycode::u;
case XK_v: return Keyboard::Keycode::v;
case XK_w: return Keyboard::Keycode::w;
case XK_x: return Keyboard::Keycode::x;
case XK_y: return Keyboard::Keycode::y;
case XK_z: return Keyboard::Keycode::z;
case XK_Num_Lock: return Keyboard::Keycode::NumLock;
case XK_KP_Divide: return Keyboard::Keycode::Divide;
case XK_KP_Multiply: return Keyboard::Keycode::Multiply;
case XK_KP_Subtract: return Keyboard::Keycode::Subtract;
case XK_KP_Add: return Keyboard::Keycode::Add;
case XK_KP_Enter: return Keyboard::Keycode::Enter;
case XK_KP_Decimal: return Keyboard::Keycode::Point;
case XK_KP_1: return Keyboard::Keycode::Keypad1;
case XK_KP_2: return Keyboard::Keycode::Keypad2;
case XK_KP_3: return Keyboard::Keycode::Keypad3;
case XK_KP_4: return Keyboard::Keycode::Keypad4;
case XK_KP_5: return Keyboard::Keycode::Keypad5;
case XK_KP_6: return Keyboard::Keycode::Keypad6;
case XK_KP_7: return Keyboard::Keycode::Keypad7;
case XK_KP_8: return Keyboard::Keycode::Keypad8;
case XK_KP_9: return Keyboard::Keycode::Keypad9;
case XK_KP_0: return Keyboard::Keycode::Keypad0;
case XK_KP_Home: return Keyboard::Keycode::KeypadHome;
case XK_KP_End: return Keyboard::Keycode::KeypadEnd;
case XK_KP_Page_Up: return Keyboard::Keycode::KeypadPageUp;
case XK_KP_Page_Down: return Keyboard::Keycode::KeypadPageDown;
case XK_KP_Up: return Keyboard::Keycode::KeypadUp;
case XK_KP_Down: return Keyboard::Keycode::KeypadDown;
case XK_KP_Left: return Keyboard::Keycode::KeypadLeft;
case XK_KP_Right: return Keyboard::Keycode::KeypadRight;
case XK_KP_Begin: return Keyboard::Keycode::KeypadCenter;
case XK_KP_Insert: return Keyboard::Keycode::KeypadInsert;
case XK_KP_Delete: return Keyboard::Keycode::KeypadDelete;
}
return Keyboard::Keycode::None;
}
*/
}
|