diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:29:28 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:29:28 +0200 |
commit | 75c07011b7c4d06acd7b45dabdcd60ab9d80f385 (patch) | |
tree | 8853c3978dd152ef377e652239448b1352320206 /ui/triple_splitter.h | |
parent | 5.22 (diff) | |
download | FreeFileSync-75c07011b7c4d06acd7b45dabdcd60ab9d80f385.tar.gz FreeFileSync-75c07011b7c4d06acd7b45dabdcd60ab9d80f385.tar.bz2 FreeFileSync-75c07011b7c4d06acd7b45dabdcd60ab9d80f385.zip |
5.23
Diffstat (limited to 'ui/triple_splitter.h')
-rw-r--r-- | ui/triple_splitter.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/ui/triple_splitter.h b/ui/triple_splitter.h deleted file mode 100644 index 0577dabf..00000000 --- a/ui/triple_splitter.h +++ /dev/null @@ -1,89 +0,0 @@ -// ************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * -// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved * -// ************************************************************************** - -#ifndef TRIPPLE_SPLIT_HEADER_8257804292846842573942534254 -#define TRIPPLE_SPLIT_HEADER_8257804292846842573942534254 - -#include <cassert> -#include <memory> -#include <wx/window.h> -#include <wx/dcclient.h> - -//a not-so-crappy splitter window - -/* manage three contained windows: - 1. left and right window are stretched - 2. middle window is fixed size - 3. middle window position can be changed via mouse with two sash lines - ----------------- - | | | | - | | | | - | | | | - ----------------- -*/ - -namespace zen -{ -class TripleSplitter : public wxWindow -{ -public: - TripleSplitter(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - ~TripleSplitter(); - - void setupWindows(wxWindow* winL, wxWindow* winC, wxWindow* winR) - { - assert(winL->GetParent() == this && winC->GetParent() == this && winR->GetParent() == this && !GetSizer()); - windowL = winL; - windowC = winC; - windowR = winR; - updateWindowSizes(); - } - - int getSashOffset() const { return centerOffset; } - void setSashOffset(int off) { centerOffset = off; updateWindowSizes(); } - -private: - void onEraseBackGround(wxEraseEvent& event) {} - void onSizeEvent(wxSizeEvent& event) { updateWindowSizes(); event.Skip(); } - - void onPaintEvent(wxPaintEvent& event) - { - wxPaintDC dc(this); - drawSash(dc); - } - - void updateWindowSizes(); - int getCenterWidth() const; - int getCenterPosX() const; //return normalized posX - int getCenterPosXOptimal() const; - - void drawSash(wxDC& dc); - bool hitOnSashLine(int posX) const; - - void onMouseLeftDown(wxMouseEvent& event); - void onMouseLeftUp(wxMouseEvent& event); - void onMouseMovement(wxMouseEvent& event); - void onLeaveWindow(wxMouseEvent& event); - void onMouseCaptureLost(wxMouseCaptureLostEvent& event); - void onMouseLeftDouble(wxMouseEvent& event); - - class SashMove; - std::unique_ptr<SashMove> activeMove; - - int centerOffset; //offset to add after "gravity" stretching - - wxWindow* windowL; - wxWindow* windowC; - wxWindow* windowR; -}; -} - -#endif //TRIPPLE_SPLIT_HEADER_8257804292846842573942534254 |