You can subscribe to this list here.
| 2005 |
Jan
(98) |
Feb
(101) |
Mar
(60) |
Apr
(38) |
May
(26) |
Jun
|
Jul
|
Aug
(159) |
Sep
(78) |
Oct
(31) |
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(6) |
Oct
|
Nov
(1) |
Dec
(3) |
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Emilien K. <cur...@us...> - 2005-01-11 13:46:10
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29769/include/wxDevCenter/StdPlugin Modified Files: BitmapDocView.h Log Message: Vérification du rectangle de mise à jour pour éviter les plantages Index: BitmapDocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapDocView.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BitmapDocView.h 10 Jan 2005 15:18:55 -0000 1.5 --- BitmapDocView.h 11 Jan 2005 13:45:54 -0000 1.6 *************** *** 45,48 **** --- 45,50 ---- /** Sauvegarde le texte depuis l'archive.*/ bool SaveDocument(wxDevCenter::Archive *ar); + + void UpdateAllViews(wxDevCenter::View *pSender, unsigned int nUpdateCode=0, wxRect* pRect=NULL); public: BitmapDocument(); |
|
From: Emilien K. <cur...@us...> - 2005-01-10 15:39:38
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13616/include/wxDevCenter/StdPlugin Modified Files: language.h Log Message: Ajout des menus correspondants aux styles de crayon et auc outils de dessins Index: language.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/language.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** language.h 7 Jan 2005 17:41:43 -0000 1.4 --- language.h 10 Jan 2005 15:38:56 -0000 1.5 *************** *** 272,275 **** --- 272,291 ---- #define WXDC_BITMAP_MENU_VIEW_EXTRASCROLL wxT("Extra scroll") + #define WXDC_BITMAP_MENU_TOOLS wxT("Tools") + #define WXDC_BITMAP_MENU_TOOLS_HANDDRAW wxT("Hand-drawing") + #define WXDC_BITMAP_MENU_TOOLS_LINE wxT("Line") + #define WXDC_BITMAP_MENU_TOOLS_RECT wxT("Rectangle") + #define WXDC_BITMAP_MENU_TOOLS_RRECT wxT("Rounded rectangle") + #define WXDC_BITMAP_MENU_TOOLS_ELLIPSE wxT("Ellipse") + + #define WXDC_BITMAP_MENU_PEN wxT("Pen") + #define WXDC_BITMAP_MENU_PEN_SOLID wxT("Solid") + #define WXDC_BITMAP_MENU_PEN_TRANSPARENT wxT("Transparent") + #define WXDC_BITMAP_MENU_PEN_DOT wxT("Dot") + #define WXDC_BITMAP_MENU_PEN_LONG_DASH wxT("Long dash") + #define WXDC_BITMAP_MENU_PEN_SHORT_DASH wxT("Short dash") + #define WXDC_BITMAP_MENU_PEN_DOT_DASH wxT("Dot ... dash") + + #define WXDC_BITMAP_ERROR_LOAD wxT("Can not load this bitmap.") #define WXDC_BITMAP_ERROR_SAVE wxT("Can not save this bitmap.") *************** *** 277,280 **** - #endif --- 293,295 ---- |
|
From: Emilien K. <cur...@us...> - 2005-01-10 15:39:18
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13616/src Modified Files: BitmapDocView.cpp Log Message: Ajout des menus correspondants aux styles de crayon et auc outils de dessins Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** BitmapDocView.cpp 10 Jan 2005 15:18:56 -0000 1.7 --- BitmapDocView.cpp 10 Jan 2005 15:38:57 -0000 1.8 *************** *** 173,195 **** #define ID_PEN_CTRL 104 ! #define ID_TOOL_NONE 200 ! #define ID_TOOL_HANDDRAW 201 ! #define ID_TOOL_BRUSH 202 ! #define ID_TOOL_SPRAY 203 ! #define ID_TOOL_LINE 204 ! #define ID_TOOL_RECT 205 ! #define ID_TOOL_ELLIPSE 206 ! #define ID_TOOL_RRECT 207 #define ID_TOOL_FIRST ID_TOOL_NONE #define ID_TOOL_LAST ID_TOOL_RRECT ! #define ID_PEN_SIZE 250 ! #define ID_PEN_SOLID 260 ! #define ID_PEN_TRANSPARENT 261 ! #define ID_PEN_DOT 262 ! #define ID_PEN_LONG_DASH 263 ! #define ID_PEN_SHORT_DASH 264 ! #define ID_PEN_DOT_DASH 265 #define ID_PEN_STYLE_FIRST ID_PEN_SOLID --- 173,195 ---- #define ID_PEN_CTRL 104 ! #define ID_TOOL_NONE (IDM_VIEW_MIN + 200) ! #define ID_TOOL_HANDDRAW (IDM_VIEW_MIN + 201) ! #define ID_TOOL_BRUSH (IDM_VIEW_MIN + 202) ! #define ID_TOOL_SPRAY (IDM_VIEW_MIN + 203) ! #define ID_TOOL_LINE (IDM_VIEW_MIN + 204) ! #define ID_TOOL_RECT (IDM_VIEW_MIN + 205) ! #define ID_TOOL_ELLIPSE (IDM_VIEW_MIN + 206) ! #define ID_TOOL_RRECT (IDM_VIEW_MIN + 207) #define ID_TOOL_FIRST ID_TOOL_NONE #define ID_TOOL_LAST ID_TOOL_RRECT ! #define ID_PEN_SIZE (IDM_VIEW_MIN + 250) ! #define ID_PEN_SOLID (IDM_VIEW_MIN + 260) ! #define ID_PEN_TRANSPARENT (IDM_VIEW_MIN + 261) ! #define ID_PEN_DOT (IDM_VIEW_MIN + 262) ! #define ID_PEN_LONG_DASH (IDM_VIEW_MIN + 263) ! #define ID_PEN_SHORT_DASH (IDM_VIEW_MIN + 264) ! #define ID_PEN_DOT_DASH (IDM_VIEW_MIN + 265) #define ID_PEN_STYLE_FIRST ID_PEN_SOLID *************** *** 231,237 **** --- 231,239 ---- EVT_UPDATE_UI_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnUpdateTools) EVT_TOOL_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnTool) + EVT_MENU_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnTool) EVT_UPDATE_UI_RANGE(ID_PEN_STYLE_FIRST, ID_PEN_STYLE_LAST, BitmapView::OnUpdatePenStyle) EVT_TOOL_RANGE(ID_PEN_STYLE_FIRST, ID_PEN_STYLE_LAST, BitmapView::OnPenStyle) + EVT_MENU_RANGE(ID_PEN_STYLE_FIRST, ID_PEN_STYLE_LAST, BitmapView::OnPenStyle) EVT_TEXT(ID_PEN_SIZE, BitmapView::OnPenSizeChange) *************** *** 246,253 **** --- 248,275 ---- { wxMenu *pMenu; + + pMenu = new wxMenu(); + pMenu->AppendCheckItem(ID_TOOL_HANDDRAW , WXDC_BITMAP_MENU_TOOLS_HANDDRAW); + pMenu->AppendCheckItem(ID_TOOL_LINE , WXDC_BITMAP_MENU_TOOLS_LINE); + pMenu->AppendCheckItem(ID_TOOL_RECT , WXDC_BITMAP_MENU_TOOLS_RECT); + pMenu->AppendCheckItem(ID_TOOL_RRECT , WXDC_BITMAP_MENU_TOOLS_RRECT); + pMenu->AppendCheckItem(ID_TOOL_ELLIPSE , WXDC_BITMAP_MENU_TOOLS_ELLIPSE); + m_aMenu.Append(pMenu, WXDC_BITMAP_MENU_TOOLS); + + pMenu = new wxMenu(); + pMenu->AppendCheckItem(ID_PEN_SOLID , WXDC_BITMAP_MENU_PEN_SOLID ); + pMenu->AppendCheckItem(ID_PEN_TRANSPARENT , WXDC_BITMAP_MENU_PEN_TRANSPARENT); + pMenu->AppendCheckItem(ID_PEN_DOT , WXDC_BITMAP_MENU_PEN_DOT ); + pMenu->AppendCheckItem(ID_PEN_LONG_DASH , WXDC_BITMAP_MENU_PEN_LONG_DASH ); + pMenu->AppendCheckItem(ID_PEN_SHORT_DASH , WXDC_BITMAP_MENU_PEN_SHORT_DASH ); + pMenu->AppendCheckItem(ID_PEN_DOT_DASH , WXDC_BITMAP_MENU_PEN_DOT_DASH ); + m_aMenu.Append(pMenu, WXDC_BITMAP_MENU_PEN); + + pMenu = new wxMenu(); pMenu->AppendCheckItem(IDM_VIEW_EXTRASCROLL, WXDC_BITMAP_MENU_VIEW_EXTRASCROLL); pMenu->Append(IDM_VIEW_CENTER, WXDC_BITMAP_MENU_VIEW_CENTER); m_aMenu.Append(pMenu, WXDC_BITMAP_MENU_VIEW); + } |
|
From: Emilien K. <cur...@us...> - 2005-01-10 15:19:14
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9423/src Modified Files: BitmapDocView.cpp Log Message: Dessin du rectangle, du Roundedrectangle et de l'ellipse. Prise en compte du crayon (largeur et style) ainsi que du pinceau. Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** BitmapDocView.cpp 8 Jan 2005 17:49:13 -0000 1.6 --- BitmapDocView.cpp 10 Jan 2005 15:18:56 -0000 1.7 *************** *** 80,89 **** // Dessine un trait. ! void BitmapDocument::DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col) { { // Local wxMemoryDC wxMemoryDC dc; dc.SelectObject(m_Bmp); - wxPen pen(col); dc.SetPen(pen); dc.DrawLine(ptFrom, ptTo); --- 80,88 ---- // Dessine un trait. ! void BitmapDocument::DrawLine(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen) { { // Local wxMemoryDC wxMemoryDC dc; dc.SelectObject(m_Bmp); dc.SetPen(pen); dc.DrawLine(ptFrom, ptTo); *************** *** 94,97 **** --- 93,142 ---- } + // Dessine un rectangle. + void BitmapDocument::DrawRect(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush) + { + { // Local wxMemoryDC + wxMemoryDC dc; + dc.SelectObject(m_Bmp); + dc.SetPen(pen); + dc.SetBrush(brush); + dc.DrawRectangle(wxRect(ptFrom, ptTo)); + } + + wxRect r(ptFrom, ptTo); + UpdateAllViews(NULL, 1, &r); + } + + // Dessine un rectangle arrondi. + void BitmapDocument::DrawRoundedRect(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush) + { + { // Local wxMemoryDC + wxMemoryDC dc; + dc.SelectObject(m_Bmp); + dc.SetPen(pen); + dc.SetBrush(brush); + wxRect r(ptFrom, ptTo); + dc.DrawRoundedRectangle(r.x, r.y, r.width, r.height, 20); + } + + wxRect r(ptFrom, ptTo); + UpdateAllViews(NULL, 1, &r); + } + + // Dessine une ellipse. + void BitmapDocument::DrawEllipse(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush) + { + { // Local wxMemoryDC + wxMemoryDC dc; + dc.SelectObject(m_Bmp); + dc.SetPen(pen); + dc.SetBrush(brush); + dc.DrawEllipse(wxRect(ptFrom, ptTo)); + } + + wxRect r(ptFrom, ptTo); + UpdateAllViews(NULL, 1, &r); + } + // Revoie le type de bitmap depuis l'extension d'un fichier. int BitmapDocument::GetBitmapType(wxDevCenter::FilePath strFile) *************** *** 126,129 **** --- 171,175 ---- #define ID_PANEL_CTRL 102 #define ID_TOOL_CTRL 103 + #define ID_PEN_CTRL 104 #define ID_TOOL_NONE 200 *************** *** 139,142 **** --- 185,198 ---- #define ID_TOOL_LAST ID_TOOL_RRECT + #define ID_PEN_SIZE 250 + #define ID_PEN_SOLID 260 + #define ID_PEN_TRANSPARENT 261 + #define ID_PEN_DOT 262 + #define ID_PEN_LONG_DASH 263 + #define ID_PEN_SHORT_DASH 264 + #define ID_PEN_DOT_DASH 265 + + #define ID_PEN_STYLE_FIRST ID_PEN_SOLID + #define ID_PEN_STYLE_LAST ID_PEN_DOT_DASH #define ID_COLOR_CURSOR_LEFT 301 *************** *** 173,184 **** EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) - EVT_UPDATE_UI_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnUpdateTools) EVT_TOOL_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnTool) EVT_ERASE_BACKGROUND(BitmapView::OnEraseBackground) END_EVENT_TABLE() BitmapView::BitmapView(): View(), --- 229,244 ---- EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) EVT_UPDATE_UI_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnUpdateTools) EVT_TOOL_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnTool) + EVT_UPDATE_UI_RANGE(ID_PEN_STYLE_FIRST, ID_PEN_STYLE_LAST, BitmapView::OnUpdatePenStyle) + EVT_TOOL_RANGE(ID_PEN_STYLE_FIRST, ID_PEN_STYLE_LAST, BitmapView::OnPenStyle) + EVT_TEXT(ID_PEN_SIZE, BitmapView::OnPenSizeChange) + EVT_ERASE_BACKGROUND(BitmapView::OnEraseBackground) END_EVENT_TABLE() + BitmapView::BitmapView(): View(), *************** *** 205,210 **** pToolSizer->Add(pPanel, 0, wxGROW); pToolSizer->SetItemMinSize((size_t)0, 172, -1); pToolSizer->Add(CreateToolBar(), 0, wxGROW); ! pToolSizer->SetItemMinSize((size_t)1, 172, -1); pGlobalSizer->Add(pToolSizer, 0, wxGROW); --- 265,275 ---- pToolSizer->Add(pPanel, 0, wxGROW); pToolSizer->SetItemMinSize((size_t)0, 172, -1); + pToolSizer->Add(CreateToolBar(), 0, wxGROW); ! pToolSizer->SetItemMinSize((size_t)1, 172, 48); ! ! pToolSizer->Add(CreatePenBar(), 0, wxGROW); ! pToolSizer->SetItemMinSize((size_t)2, 172, -1); ! pGlobalSizer->Add(pToolSizer, 0, wxGROW); *************** *** 212,216 **** SetSizerAndFit(pGlobalSizer); ! SetActiveColorCtrl(m_pColourLeftButton); return true; --- 277,284 ---- SetSizerAndFit(pGlobalSizer); ! ! SetRightColor(wxColour(255, 255, 255)); ! SetLeftColor(wxColour(0, 0, 0)); ! return true; *************** *** 433,436 **** --- 501,505 ---- m_pColourLeftButton->SetColour(col); SetActiveColorCtrl(m_pColourLeftButton); + m_Pen.SetColour(col); } *************** *** 440,443 **** --- 509,513 ---- m_pColourRightButton->SetColour(col); SetActiveColorCtrl(m_pColourRightButton); + m_Brush.SetColour(col); } *************** *** 472,476 **** ! /** Interception d'un drag gauche.*/ void BitmapView::OnLeftDrag(wxExtendedMouseEvent& event) { --- 542,625 ---- ! ! // Création de la barre de pinceau. ! wxPanel* BitmapView::CreatePenBar() ! { ! wxPanel *pPanel = new wxPanel(this, ID_PEN_CTRL); ! wxSizer *pGlobalSizer = new wxBoxSizer(wxVERTICAL); ! ! m_pPenSize = new wxSliderSpinCtrl(pPanel, ID_PEN_SIZE, 1, 1, 100); ! pGlobalSizer->Add(m_pPenSize, 0, wxGROW|wxALL, 2); ! ! wxToolBar *pTB = new wxToolBar(pPanel, ID_PEN_CTRL, wxDefaultPosition, wxDefaultSize, wxTB_VERTICAL|wxNO_BORDER); ! pTB->SetToolBitmapSize(wxSize(96, 15)); ! wxBitmap bmp; ! bmp = wxGetApp().LoadAppBitmap("bmp/SOLID.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_SOLID, "Solid", bmp, "Solid pen", wxITEM_CHECK); ! bmp = wxGetApp().LoadAppBitmap("bmp/TRANSPARENT.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_TRANSPARENT, "Transparent", bmp, "Transparent pen", wxITEM_CHECK); ! bmp = wxGetApp().LoadAppBitmap("bmp/DOT.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_DOT, "Dot", bmp, "Dot pen", wxITEM_CHECK); ! bmp = wxGetApp().LoadAppBitmap("bmp/LONG_DASH.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_LONG_DASH, "Long dash", bmp, "Long dash pen", wxITEM_CHECK); ! bmp = wxGetApp().LoadAppBitmap("bmp/SHORT_DASH.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_SHORT_DASH, "Short dash", bmp, "Short dash pen", wxITEM_CHECK); ! bmp = wxGetApp().LoadAppBitmap("bmp/DOT_DASH.PNG", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_PEN_DOT_DASH, "Dot...dash", bmp, "Dot...dash pen", wxITEM_CHECK); ! pTB->Realize(); ! pGlobalSizer->Add(pTB, 1, wxGROW); ! ! pPanel->SetSizer(pGlobalSizer); ! ! return pPanel; ! } ! ! // Interception de la sélection d'un outil. ! void BitmapView::OnPenStyle(wxCommandEvent& event) ! { ! m_iPenType = event.GetId() - ID_PEN_STYLE_FIRST; ! ! switch(m_iPenType) ! { ! case 0: ! m_Pen.SetStyle(wxSOLID); ! break; ! case 1: ! m_Pen.SetStyle(wxTRANSPARENT); ! break; ! case 2: ! m_Pen.SetStyle(wxDOT); ! break; ! case 3: ! m_Pen.SetStyle(wxLONG_DASH); ! break; ! case 4: ! m_Pen.SetStyle(wxSHORT_DASH); ! break; ! case 5: ! m_Pen.SetStyle(wxDOT_DASH); ! break; ! default: ! m_Pen.SetStyle(wxSOLID); ! break; ! } ! } ! ! // Interception de l'update des outils. ! void BitmapView::OnUpdatePenStyle(wxUpdateUIEvent& event) ! { ! event.Check(m_iPenType == (event.GetId()- ID_PEN_STYLE_FIRST)); ! } ! ! // Intercepte le changement de taille de trait. ! void BitmapView::OnPenSizeChange(wxCommandEvent& WXUNUSED(event)) ! { ! m_Pen.SetWidth(m_pPenSize->GetValue()); ! } ! ! ! ! ! // Interception d'un drag gauche. void BitmapView::OnLeftDrag(wxExtendedMouseEvent& event) { *************** *** 482,486 **** if(pt !=wxDefaultPosition) { ! GetDocument()->DrawLine(m_pt, pt, m_pColourLeftButton->GetColour()); m_pt = pt; } --- 631,635 ---- if(pt !=wxDefaultPosition) { ! GetDocument()->DrawLine(m_pt, pt, m_Pen); m_pt = pt; } *************** *** 492,501 **** wxMemoryDC dc; dc.SelectObject(m_pBitmapCtrl->Bitmap()); ! wxPen pen(m_pColourLeftButton->GetColour()); ! dc.SetPen(pen); dc.DrawLine(m_pt, pt); } m_pBitmapCtrl->Refresh(); break; } } --- 641,686 ---- wxMemoryDC dc; dc.SelectObject(m_pBitmapCtrl->Bitmap()); ! dc.SetPen(m_Pen); dc.DrawLine(m_pt, pt); } m_pBitmapCtrl->Refresh(); break; + case BVD_RECT: + m_pBitmapCtrl->RestoreBitmapRect(); + m_pBitmapCtrl->SaveBitmapRect(wxRect(m_pt, pt)); + { + wxMemoryDC dc; + dc.SelectObject(m_pBitmapCtrl->Bitmap()); + dc.SetPen(m_Pen); + dc.SetBrush(m_Brush); + dc.DrawRectangle(wxRect(m_pt, pt)); + } + m_pBitmapCtrl->Refresh(); + break; + case BVD_RRECT: + m_pBitmapCtrl->RestoreBitmapRect(); + m_pBitmapCtrl->SaveBitmapRect(wxRect(m_pt, pt)); + { + wxMemoryDC dc; + dc.SelectObject(m_pBitmapCtrl->Bitmap()); + dc.SetPen(m_Pen); + dc.SetBrush(m_Brush); + wxRect r(m_pt, pt); + dc.DrawRoundedRectangle(r.x, r.y, r.width, r.height, 20); + } + m_pBitmapCtrl->Refresh(); + break; + case BVD_ELLIPSE: + m_pBitmapCtrl->RestoreBitmapRect(); + m_pBitmapCtrl->SaveBitmapRect(wxRect(m_pt, pt)); + { + wxMemoryDC dc; + dc.SelectObject(m_pBitmapCtrl->Bitmap()); + dc.SetPen(m_Pen); + dc.SetBrush(m_Brush); + dc.DrawEllipse(wxRect(m_pt, pt)); + } + m_pBitmapCtrl->Refresh(); + break; } } *************** *** 508,511 **** --- 693,699 ---- case BVD_HANDDRAW: case BVD_LINE: + case BVD_RECT: + case BVD_RRECT: + case BVD_ELLIPSE: m_pBitmapCtrl->ClearSaveBitmap(); m_pt = m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()); *************** *** 525,529 **** case BVD_LINE: m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawLine(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_pColourLeftButton->GetColour()); m_pt = wxDefaultPosition; break; --- 713,732 ---- case BVD_LINE: m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawLine(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_Pen); ! m_pt = wxDefaultPosition; ! break; ! case BVD_RECT: ! m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawRect(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_Pen, m_Brush); ! m_pt = wxDefaultPosition; ! break; ! case BVD_RRECT: ! m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawRoundedRect(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_Pen, m_Brush); ! m_pt = wxDefaultPosition; ! break; ! case BVD_ELLIPSE: ! m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawEllipse(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_Pen, m_Brush); m_pt = wxDefaultPosition; break; |
|
From: Emilien K. <cur...@us...> - 2005-01-10 15:19:14
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9423/include/wxDevCenter/StdPlugin Modified Files: BitmapDocView.h Log Message: Dessin du rectangle, du Roundedrectangle et de l'ellipse. Prise en compte du crayon (largeur et style) ainsi que du pinceau. Index: BitmapDocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapDocView.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BitmapDocView.h 8 Jan 2005 14:48:48 -0000 1.4 --- BitmapDocView.h 10 Jan 2005 15:18:55 -0000 1.5 *************** *** 54,59 **** void SetPixel(wxPoint pt, wxColour col); ! /** Dessine un trait.*/ ! void DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col); /** Revoie le type de bitmap depuis l'extension d'un fichier. --- 54,87 ---- void SetPixel(wxPoint pt, wxColour col); ! /** Dessine un trait. ! * @param ptFrom Point de départ du trait. ! * @param ptTo Point d'arrivée du trait. ! * @pen Crayon de dessin du trait. ! */ ! void DrawLine(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen); ! ! /** Dessine un rectangle. ! * @param ptFrom Point de départ du rectangle. ! * @param ptTo Point d'arrivée du rectangle. ! * @pen Crayon du contour du rectangle. ! * @brush Pinceau de remplissage du rectangle. ! */ ! void DrawRect(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush); ! ! /** Dessine un rectangle arrondi. ! * @param ptFrom Point de départ du rectangle. ! * @param ptTo Point d'arrivée du rectangle. ! * @pen Crayon du contour du rectangle. ! * @brush Pinceau de remplissage du rectangle. ! */ ! void DrawRoundedRect(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush); ! ! /** Dessine une ellipse. ! * @param ptFrom Point de départ de l'ellipse. ! * @param ptTo Point d'arrivée de l'ellipse. ! * @pen Crayon du contour de l'ellipse. ! * @brush Pinceau de remplissage de l'ellipse. ! */ ! void DrawEllipse(wxPoint ptFrom, wxPoint ptTo, const wxPen &pen, const wxBrush &brush); /** Revoie le type de bitmap depuis l'extension d'un fichier. *************** *** 91,100 **** void OnUpdateExtraScroll(wxUpdateUIEvent& event); /** Création de la barre de couleurs.*/ wxPanel* CreateColourBar(); - /** Création de la barre d'outil.*/ - wxToolBar* CreateToolBar(); - - /** Contrôles divers.*/ /** Controle de couleur du bouton gauche.*/ wxColourCtrl* m_pColourLeftButton; --- 119,133 ---- void OnUpdateExtraScroll(wxUpdateUIEvent& event); + + /** Crayon de contour.*/ + wxPen m_Pen; + /** Pinceau de remplissage.*/ + wxBrush m_Brush; + + + /** @name Contrôles de couleurs. + * @{ */ /** Création de la barre de couleurs.*/ wxPanel* CreateColourBar(); /** Controle de couleur du bouton gauche.*/ wxColourCtrl* m_pColourLeftButton; *************** *** 105,109 **** /** Tableau de couleurs utilisateurs.*/ wxColourCtrl* m_pColourArray[WXDC_BITMAP_PALETTE_SIZE]; - /** SliderSpin rouge*/ wxSliderSpinCtrl* m_pRedSSC; --- 138,141 ---- *************** *** 114,118 **** /** Entrée couleur HTML.*/ wxTextCtrl* m_pHTMLColor; - /** Interception du changement de controle de couleur actif sur bouton gauche.*/ void OnColorPaletteLeftClick(wxCommandEvent& event); --- 146,149 ---- *************** *** 123,127 **** /** Interception du click sur le bouton droit. */ void OnColorRightClick(wxCommandEvent& event); - /** Fixe la couleur gauche.*/ void SetLeftColor(wxColour col); --- 154,157 ---- *************** *** 130,140 **** /** Fixe le controle de couleur actif.*/ void SetActiveColorCtrl(wxColourCtrl* pColor); - /** Intercepte le changement de couleur des wxSliderSpinCtrl.*/ void OnSliderSpinTextChanged(wxCommandEvent& event); - /** Intercepte la peinture du fond pour empecher le flicking.*/ - void OnEraseBackground(wxEraseEvent& event); enum BitmapViewDrawing { --- 160,173 ---- /** Fixe le controle de couleur actif.*/ void SetActiveColorCtrl(wxColourCtrl* pColor); /** Intercepte le changement de couleur des wxSliderSpinCtrl.*/ void OnSliderSpinTextChanged(wxCommandEvent& event); + /** @}*/ + /** @name Contrôles d'outils. + * @{ */ + /** Création de la barre d'outil.*/ + wxToolBar* CreateToolBar(); + /** Outils.*/ enum BitmapViewDrawing { *************** *** 148,162 **** BVD_RRECT = 7 }; - /** Fonction de tracé courante.*/ BitmapViewDrawing m_BVD; - - /** Sauvegarde d'un point.*/ - wxPoint m_pt; - /** Interception de la sélection d'un outil.*/ void OnTool(wxCommandEvent& event); /** Interception de l'update des outils.*/ void OnUpdateTools(wxUpdateUIEvent& event); /** Interception d'un drag gauche.*/ --- 181,211 ---- BVD_RRECT = 7 }; /** Fonction de tracé courante.*/ BitmapViewDrawing m_BVD; /** Interception de la sélection d'un outil.*/ void OnTool(wxCommandEvent& event); /** Interception de l'update des outils.*/ void OnUpdateTools(wxUpdateUIEvent& event); + /** Intercepte le changement de taille de trait.*/ + void OnPenSizeChange(wxCommandEvent& event); + /** @} */ + + + /** @name Contrôles de trait. + * @{ */ + int m_iPenType; + /** Création de la barre de pinceau.*/ + wxPanel* CreatePenBar(); + /** Taille du trait.*/ + wxSliderSpinCtrl* m_pPenSize; + /** Interception de la sélection d'un outil.*/ + void OnPenStyle(wxCommandEvent& event); + /** Interception de l'update des outils.*/ + void OnUpdatePenStyle(wxUpdateUIEvent& event); + /** @} */ + + + /** Sauvegarde d'un point.*/ + wxPoint m_pt; /** Interception d'un drag gauche.*/ *************** *** 167,170 **** --- 216,221 ---- void OnLeftDragEnd(wxExtendedMouseEvent& event); + /** Intercepte la peinture du fond pour empecher le flicking.*/ + void OnEraseBackground(wxEraseEvent& event); public: |
|
From: Emilien K. <cur...@us...> - 2005-01-10 15:19:06
|
Update of /cvsroot/wxdevcenter/StdPlugin/data/img/bmp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9423/data/img/bmp Added Files: DOT.PNG DOT_DASH.PNG LONG_DASH.PNG SHORT_DASH.PNG SOLID.PNG TRANSPARENT.PNG Log Message: Dessin du rectangle, du Roundedrectangle et de l'ellipse. Prise en compte du crayon (largeur et style) ainsi que du pinceau. --- NEW FILE: SHORT_DASH.PNG --- (This appears to be a binary file; contents omitted.) --- NEW FILE: SOLID.PNG --- (This appears to be a binary file; contents omitted.) --- NEW FILE: DOT_DASH.PNG --- (This appears to be a binary file; contents omitted.) --- NEW FILE: DOT.PNG --- (This appears to be a binary file; contents omitted.) --- NEW FILE: TRANSPARENT.PNG --- (This appears to be a binary file; contents omitted.) --- NEW FILE: LONG_DASH.PNG --- (This appears to be a binary file; contents omitted.) |
|
From: Emilien K. <cur...@us...> - 2005-01-08 17:49:23
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2316/include/wxDevCenter/StdPlugin Modified Files: BitmapCtrl.h Log Message: Buffer de sauvegarde d'une partie de l'image du BitmapCtrl Tracé de ligne Index: BitmapCtrl.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapCtrl.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BitmapCtrl.h 7 Jan 2005 22:10:41 -0000 1.5 --- BitmapCtrl.h 8 Jan 2005 17:49:13 -0000 1.6 *************** *** 48,51 **** --- 48,55 ---- wxBitmap m_Bmp; + /** Buffer de sauvegarde d'une partie de l'image.*/ + wxBitmap m_SaveBuffer; + wxPoint m_ptSaveBuffer; + private: /** Niveau de zoom. *************** *** 106,109 **** --- 110,123 ---- bool IsExtraScroll()const{return m_bExtraScroll;} + /** Sauvegarde une partie de l'image. + * @param r Rectangle de sauvegarde en coordonnées bitmap. + */ + void SaveBitmapRect(wxRect r); + /** Restore la partie d'image sauvegardée. + * Ne fait pas de rafraichissement du contrôle. + */ + void RestoreBitmapRect(); + /** Supprime la sauvegarde d'image.*/ + void ClearSaveBitmap(); /** Centre l'image. |
|
From: Emilien K. <cur...@us...> - 2005-01-08 17:49:23
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2316/src Modified Files: BitmapCtrl.cpp BitmapDocView.cpp Log Message: Buffer de sauvegarde d'une partie de l'image du BitmapCtrl Tracé de ligne Index: BitmapCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapCtrl.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** BitmapCtrl.cpp 8 Jan 2005 16:29:53 -0000 1.7 --- BitmapCtrl.cpp 8 Jan 2005 17:49:13 -0000 1.8 *************** *** 328,330 **** --- 328,352 ---- + // Sauvegarde une partie de l'image. + void BitmapCtrl::SaveBitmapRect(wxRect r) + { + m_SaveBuffer = m_Bmp.GetSubBitmap(r); + m_ptSaveBuffer = r.GetLeftTop(); + } + + // Restore la partie d'image sauvegardée. + void BitmapCtrl::RestoreBitmapRect() + { + if(m_SaveBuffer.Ok()) + { + wxMemoryDC dc; + dc.SelectObject(m_Bmp); + dc.DrawBitmap(m_SaveBuffer, m_ptSaveBuffer); + } + } + // Supprime la sauvegarde d'image. + void BitmapCtrl::ClearSaveBitmap() + { + m_SaveBuffer = wxBitmap(NULL, 0, 0); + } Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BitmapDocView.cpp 8 Jan 2005 15:19:51 -0000 1.5 --- BitmapDocView.cpp 8 Jan 2005 17:49:13 -0000 1.6 *************** *** 321,340 **** wxBitmap bmp; bmp = wxGetApp().LoadAppBitmap("bmp/handdraw.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_HANDDRAW, "Hand draw", bmp); bmp = wxGetApp().LoadAppBitmap("bmp/brush.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_BRUSH, "Brush", bmp); bmp = wxGetApp().LoadAppBitmap("bmp/spray.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_SPRAY, "Spray", bmp); pTB->AddSeparator(); bmp = wxGetApp().LoadAppBitmap("bmp/line.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_LINE, "Line", bmp); bmp = wxGetApp().LoadAppBitmap("bmp/rect.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_RECT, "Rect", bmp); bmp = wxGetApp().LoadAppBitmap("bmp/ellipse.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_ELLIPSE, "Ellipse", bmp); bmp = wxGetApp().LoadAppBitmap("bmp/rrect.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_RRECT, "Rounded rect", bmp); pTB->Realize(); --- 321,340 ---- wxBitmap bmp; bmp = wxGetApp().LoadAppBitmap("bmp/handdraw.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_HANDDRAW, "Hand draw", bmp, "Hand draw", wxITEM_CHECK); bmp = wxGetApp().LoadAppBitmap("bmp/brush.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_BRUSH, "Brush", bmp, "Brush", wxITEM_CHECK); bmp = wxGetApp().LoadAppBitmap("bmp/spray.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_SPRAY, "Spray", bmp, "Spray", wxITEM_CHECK); pTB->AddSeparator(); bmp = wxGetApp().LoadAppBitmap("bmp/line.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_LINE, "Line", bmp, "Line", wxITEM_CHECK); bmp = wxGetApp().LoadAppBitmap("bmp/rect.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_RECT, "Rect", bmp, "Rect", wxITEM_CHECK); bmp = wxGetApp().LoadAppBitmap("bmp/ellipse.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_ELLIPSE, "Ellipse", bmp, "Ellipse", wxITEM_CHECK); bmp = wxGetApp().LoadAppBitmap("bmp/rrect.png", wxBITMAP_TYPE_PNG); ! pTB->AddTool(ID_TOOL_RRECT, "Rounded rect", bmp, "Rounded rect", wxITEM_CHECK); pTB->Realize(); *************** *** 477,484 **** wxPoint pt = m_pBitmapCtrl->ClientToBitmap(event.GetToPos()); ! if(m_BVD == BVD_HANDDRAW) { ! GetDocument()->DrawLine(m_pt, pt, m_pColourLeftButton->GetColour()); ! m_pt = pt; } } --- 477,501 ---- wxPoint pt = m_pBitmapCtrl->ClientToBitmap(event.GetToPos()); ! switch(m_BVD) { ! case BVD_HANDDRAW: ! if(pt !=wxDefaultPosition) ! { ! GetDocument()->DrawLine(m_pt, pt, m_pColourLeftButton->GetColour()); ! m_pt = pt; ! } ! break; ! case BVD_LINE: ! m_pBitmapCtrl->RestoreBitmapRect(); ! m_pBitmapCtrl->SaveBitmapRect(wxRect(m_pt, pt)); ! { ! wxMemoryDC dc; ! dc.SelectObject(m_pBitmapCtrl->Bitmap()); ! wxPen pen(m_pColourLeftButton->GetColour()); ! dc.SetPen(pen); ! dc.DrawLine(m_pt, pt); ! } ! m_pBitmapCtrl->Refresh(); ! break; } } *************** *** 487,498 **** void BitmapView::OnLeftDragStart(wxExtendedMouseEvent& event) { ! m_BVD = BVD_HANDDRAW; ! m_pt = m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()); } // Interception d'une fin de drag gauche. ! void BitmapView::OnLeftDragEnd(wxExtendedMouseEvent& WXUNUSED(event)) { ! m_BVD = BVD_NONE; } --- 504,532 ---- void BitmapView::OnLeftDragStart(wxExtendedMouseEvent& event) { ! switch(m_BVD) ! { ! case BVD_HANDDRAW: ! case BVD_LINE: ! m_pBitmapCtrl->ClearSaveBitmap(); ! m_pt = m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()); ! break; ! } ! } // Interception d'une fin de drag gauche. ! void BitmapView::OnLeftDragEnd(wxExtendedMouseEvent& event) { ! switch(m_BVD) ! { ! case BVD_HANDDRAW: ! m_pt = wxDefaultPosition; ! break; ! case BVD_LINE: ! m_pBitmapCtrl->RestoreBitmapRect(); ! GetDocument()->DrawLine(m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()), m_pBitmapCtrl->ClientToBitmap(event.GetToPos()), m_pColourLeftButton->GetColour()); ! m_pt = wxDefaultPosition; ! break; ! } } *************** *** 500,504 **** void BitmapView::OnUpdateTools(wxUpdateUIEvent& event) { ! event.Check(m_BVD == (event.GetId()-ID_TOOL_NONE)); } --- 534,538 ---- void BitmapView::OnUpdateTools(wxUpdateUIEvent& event) { ! event.Check(m_BVD == BitmapViewDrawing(event.GetId()-ID_TOOL_NONE)); } |
|
From: Emilien K. <cur...@us...> - 2005-01-08 16:30:03
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14701/src Modified Files: BitmapCtrl.cpp Log Message: Fix pb de trnaslation de coordonnées bitmap->client et inversement Index: BitmapCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapCtrl.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** BitmapCtrl.cpp 8 Jan 2005 16:17:25 -0000 1.6 --- BitmapCtrl.cpp 8 Jan 2005 16:29:53 -0000 1.7 *************** *** 225,240 **** wxPoint BitmapCtrl::ClientToBitmap(wxPoint ptClient)const { ptClient += wxPoint(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL)); - if(m_iZoom>0) - { - ptClient.x /= (m_iZoom+1); - ptClient.y /= (m_iZoom+1); - } - else if(m_iZoom<0) - { - ptClient.x *= -(m_iZoom-1); - ptClient.y *= -(m_iZoom-1); - } ptClient -= m_ptOrigin; return ptClient; } --- 225,234 ---- wxPoint BitmapCtrl::ClientToBitmap(wxPoint ptClient)const { + ptClient.x /= ZoomToScale(); + ptClient.y /= ZoomToScale(); + ptClient += wxPoint(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL)); ptClient -= m_ptOrigin; + return ptClient; } *************** *** 243,258 **** wxPoint BitmapCtrl::BitmapToClient(wxPoint ptBitmap)const { ! ptBitmap += m_ptOrigin ; ! if(m_iZoom>0) ! { ! ptBitmap.x *= (m_iZoom+1); ! ptBitmap.y *= (m_iZoom+1); ! } ! else if(m_iZoom<0) ! { ! ptBitmap.x /= -(m_iZoom-1); ! ptBitmap.y /= -(m_iZoom-1); ! } ! ptBitmap -= wxSize(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL)); return ptBitmap; } --- 237,246 ---- wxPoint BitmapCtrl::BitmapToClient(wxPoint ptBitmap)const { ! ptBitmap += m_ptOrigin; ! ptBitmap -= wxPoint(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL)); ! ! ptBitmap.x *= ZoomToScale(); ! ptBitmap.y *= ZoomToScale(); ! return ptBitmap; } |
|
From: Emilien K. <cur...@us...> - 2005-01-08 16:17:33
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11994/src Modified Files: BitmapCtrl.cpp Log Message: Optimisation de redessinement du BitmapCtrl (evite le méga-ralentissement et le flickking) Index: BitmapCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapCtrl.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BitmapCtrl.cpp 7 Jan 2005 22:10:42 -0000 1.5 --- BitmapCtrl.cpp 8 Jan 2005 16:17:25 -0000 1.6 *************** *** 71,81 **** void BitmapCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) { ! wxBufferedPaintDC dc(this); wxBrush br(GetBackgroundColour()); dc.SetBackground(br); dc.BeginDrawing(); ! dc.Clear(); OnDraw(&dc); dc.EndDrawing(); } --- 71,89 ---- void BitmapCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) { ! wxPaintDC dc(this); ! ! double dScale = ZoomToScale(); wxBrush br(GetBackgroundColour()); dc.SetBackground(br); dc.BeginDrawing(); ! ! // dc.Clear(); ! ! dc.SetUserScale(dScale, dScale); ! dc.SetDeviceOrigin(-GetScrollPos(wxHORIZONTAL)*dScale, -GetScrollPos(wxVERTICAL)*dScale); ! OnDraw(&dc); + dc.EndDrawing(); } *************** *** 84,90 **** void BitmapCtrl::OnDraw(wxDC* pDC) { ! wxSize sz(m_Bmp.GetWidth()*ZoomToScale(), m_Bmp.GetHeight()*ZoomToScale()); ! wxBitmap bmp = m_Bmp.ConvertToImage().Scale(sz.x, sz.y); ! pDC->DrawBitmap(bmp, m_ptOrigin.x - GetScrollPos(wxHORIZONTAL), m_ptOrigin.y - GetScrollPos(wxVERTICAL)); } --- 92,96 ---- void BitmapCtrl::OnDraw(wxDC* pDC) { ! pDC->DrawBitmap(m_Bmp, 0, 0); } |
|
From: Emilien K. <cur...@us...> - 2005-01-08 15:20:02
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32442/src Modified Files: BitmapDocView.cpp Log Message: Optimisation de la mise à jour (UpdateAllViews/OnUpdate) de la bitmap Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BitmapDocView.cpp 8 Jan 2005 14:48:49 -0000 1.4 --- BitmapDocView.cpp 8 Jan 2005 15:19:51 -0000 1.5 *************** *** 14,17 **** --- 14,18 ---- #include <wx/dcmemory.h> #include <wx/toolbar.h> + #include <wx/recguard.h> using namespace wxDevCenter; *************** *** 66,77 **** void BitmapDocument::SetPixel(wxPoint pt, wxColour col) { ! wxMemoryDC dc; ! dc.SelectObject(m_Bmp); ! ! wxPen pen(col); ! dc.SetPen(pen); ! dc.DrawPoint(pt); ! UpdateAllViews(NULL); } --- 67,80 ---- void BitmapDocument::SetPixel(wxPoint pt, wxColour col) { ! { // Local wxMemoryDC ! wxMemoryDC dc; ! dc.SelectObject(m_Bmp); ! wxPen pen(col); ! dc.SetPen(pen); ! dc.DrawPoint(pt); ! } ! wxRect r(pt, wxSize(1, 1)); ! UpdateAllViews(NULL, 1, &r); } *************** *** 79,91 **** void BitmapDocument::DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col) { ! wxMemoryDC dc; ! dc.SelectObject(m_Bmp); ! ! wxPen pen(col); ! ! dc.SetPen(pen); ! dc.DrawLine(ptFrom, ptTo); ! UpdateAllViews(NULL); } --- 82,95 ---- void BitmapDocument::DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col) { ! { // Local wxMemoryDC ! wxMemoryDC dc; ! dc.SelectObject(m_Bmp); ! wxPen pen(col); ! dc.SetPen(pen); ! dc.DrawLine(ptFrom, ptTo); ! } ! wxRect r(ptFrom, ptTo); ! UpdateAllViews(NULL, 1, &r); } *************** *** 351,357 **** } ! void BitmapView::OnUpdate(View* WXUNUSED(pSender), unsigned int WXUNUSED(nUpdateCode), void* WXUNUSED(pUpdateInfo)) { ! m_pBitmapCtrl->SetBitmap(GetDocument()->GetBitmap()); } --- 355,377 ---- } ! void BitmapView::OnUpdate(View* WXUNUSED(pSender), unsigned int nUpdateCode, void* pUpdateInfo) { ! wxBitmap bmp; ! if(nUpdateCode==0) ! m_pBitmapCtrl->SetBitmap(GetDocument()->GetBitmap()); ! else ! { ! wxRect r = *((wxRect*)pUpdateInfo); ! bmp = GetDocument()->GetBitmap().GetSubBitmap(r); ! ! { // Local wxMemoryDC ! wxMemoryDC dc; ! dc.SelectObject(m_pBitmapCtrl->Bitmap()); ! dc.DrawBitmap(bmp, r.x, r.y, false); ! } ! ! m_pBitmapCtrl->Refresh(); ! ! } } |
|
From: Emilien K. <cur...@us...> - 2005-01-08 14:49:17
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26792/src Modified Files: BitmapDocView.cpp Log Message: ToolBar des outils de dessin Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BitmapDocView.cpp 7 Jan 2005 22:10:42 -0000 1.3 --- BitmapDocView.cpp 8 Jan 2005 14:48:49 -0000 1.4 *************** *** 13,16 **** --- 13,17 ---- #include <wx/dcmemory.h> + #include <wx/toolbar.h> using namespace wxDevCenter; *************** *** 120,132 **** #define ID_BITMAP_CTRL 101 #define ID_PANEL_CTRL 102 ! #define ID_COLOR_CURSOR_LEFT 111 ! #define ID_COLOR_CURSOR_RIGHT 112 ! #define ID_COLOR_SLIDER_RED 113 ! #define ID_COLOR_SLIDER_GREEN 114 ! #define ID_COLOR_SLIDER_BLUE 115 ! #define ID_COLOR_HTML 116 ! #define ID_COLOR_PALETTE_START 120 #define ID_COLOR_PALETTE_END (ID_COLOR_PALETTE_START+WXDC_BITMAP_PALETTE_SIZE) --- 121,147 ---- #define ID_BITMAP_CTRL 101 #define ID_PANEL_CTRL 102 + #define ID_TOOL_CTRL 103 ! #define ID_TOOL_NONE 200 ! #define ID_TOOL_HANDDRAW 201 ! #define ID_TOOL_BRUSH 202 ! #define ID_TOOL_SPRAY 203 ! #define ID_TOOL_LINE 204 ! #define ID_TOOL_RECT 205 ! #define ID_TOOL_ELLIPSE 206 ! #define ID_TOOL_RRECT 207 ! #define ID_TOOL_FIRST ID_TOOL_NONE ! #define ID_TOOL_LAST ID_TOOL_RRECT ! ! ! #define ID_COLOR_CURSOR_LEFT 301 ! #define ID_COLOR_CURSOR_RIGHT 302 ! #define ID_COLOR_SLIDER_RED 303 ! #define ID_COLOR_SLIDER_GREEN 304 ! #define ID_COLOR_SLIDER_BLUE 305 ! #define ID_COLOR_HTML 306 ! ! #define ID_COLOR_PALETTE_START 310 #define ID_COLOR_PALETTE_END (ID_COLOR_PALETTE_START+WXDC_BITMAP_PALETTE_SIZE) *************** *** 154,157 **** --- 169,176 ---- EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) + + EVT_UPDATE_UI_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnUpdateTools) + EVT_TOOL_RANGE(ID_TOOL_FIRST, ID_TOOL_LAST, BitmapView::OnTool) + EVT_ERASE_BACKGROUND(BitmapView::OnEraseBackground) END_EVENT_TABLE() *************** *** 174,185 **** m_pBitmapCtrl = new BitmapCtrl(this, ID_BITMAP_CTRL, wxDefaultPosition, wxDefaultSize, 0); ! wxSizer *pSizer = new wxBoxSizer(wxHORIZONTAL); ! wxPanel* pPanel = CreateControlPanel(); ! pSizer->Add(m_pBitmapCtrl, 1, wxGROW); ! pSizer->Add(pPanel, 0, wxGROW); ! pSizer->SetItemMinSize(pPanel, 172, -1); ! SetSizerAndFit(pSizer); SetActiveColorCtrl(m_pColourLeftButton); --- 193,210 ---- m_pBitmapCtrl = new BitmapCtrl(this, ID_BITMAP_CTRL, wxDefaultPosition, wxDefaultSize, 0); ! wxSizer *pGlobalSizer = new wxBoxSizer(wxHORIZONTAL), ! *pToolSizer = new wxBoxSizer(wxVERTICAL); ! wxPanel* pPanel = CreateColourBar(); ! pGlobalSizer->Add(m_pBitmapCtrl, 1, wxGROW); + pToolSizer->Add(pPanel, 0, wxGROW); + pToolSizer->SetItemMinSize((size_t)0, 172, -1); + pToolSizer->Add(CreateToolBar(), 0, wxGROW); + pToolSizer->SetItemMinSize((size_t)1, 172, -1); + + pGlobalSizer->Add(pToolSizer, 0, wxGROW); + + SetSizerAndFit(pGlobalSizer); SetActiveColorCtrl(m_pColourLeftButton); *************** *** 225,230 **** ! // Création de la barre de controle. ! wxPanel* BitmapView::CreateControlPanel() { wxPanel *pPanel = new wxPanel(this, ID_PANEL_CTRL); --- 250,256 ---- ! ! // Création de la barre de couleurs. ! wxPanel* BitmapView::CreateColourBar() { wxPanel *pPanel = new wxPanel(this, ID_PANEL_CTRL); *************** *** 284,287 **** --- 310,342 ---- } + // Création de la barre d'outil. + wxToolBar* BitmapView::CreateToolBar() + { + wxToolBar *pTB = new wxToolBar(this, ID_TOOL_CTRL, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL|wxNO_BORDER); + + wxBitmap bmp; + bmp = wxGetApp().LoadAppBitmap("bmp/handdraw.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_HANDDRAW, "Hand draw", bmp); + bmp = wxGetApp().LoadAppBitmap("bmp/brush.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_BRUSH, "Brush", bmp); + bmp = wxGetApp().LoadAppBitmap("bmp/spray.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_SPRAY, "Spray", bmp); + + pTB->AddSeparator(); + + bmp = wxGetApp().LoadAppBitmap("bmp/line.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_LINE, "Line", bmp); + bmp = wxGetApp().LoadAppBitmap("bmp/rect.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_RECT, "Rect", bmp); + bmp = wxGetApp().LoadAppBitmap("bmp/ellipse.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_ELLIPSE, "Ellipse", bmp); + bmp = wxGetApp().LoadAppBitmap("bmp/rrect.png", wxBITMAP_TYPE_PNG); + pTB->AddTool(ID_TOOL_RRECT, "Rounded rect", bmp); + + pTB->Realize(); + pTB->SetRows(2); + + return pTB; + } void BitmapView::OnSize(wxSizeEvent& event) *************** *** 422,425 **** --- 477,492 ---- } + // Interception de l'update des outils. + void BitmapView::OnUpdateTools(wxUpdateUIEvent& event) + { + event.Check(m_BVD == (event.GetId()-ID_TOOL_NONE)); + } + + // Interception de la sélection d'un outil. + void BitmapView::OnTool(wxCommandEvent& event) + { + m_BVD = BitmapViewDrawing(event.GetId()-ID_TOOL_NONE); + } + ////////////////////////////////////////////////////////////////////// // BitmapMiniDoc |
|
From: Emilien K. <cur...@us...> - 2005-01-08 14:49:17
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26792/include/wxDevCenter/StdPlugin Modified Files: BitmapDocView.h Log Message: ToolBar des outils de dessin Index: BitmapDocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapDocView.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BitmapDocView.h 7 Jan 2005 22:10:41 -0000 1.3 --- BitmapDocView.h 8 Jan 2005 14:48:48 -0000 1.4 *************** *** 91,97 **** void OnUpdateExtraScroll(wxUpdateUIEvent& event); ! /** Création de la barre de controle.*/ ! wxPanel* CreateControlPanel(); ! /** Contrôles divers.*/ --- 91,98 ---- void OnUpdateExtraScroll(wxUpdateUIEvent& event); ! /** Création de la barre de couleurs.*/ ! wxPanel* CreateColourBar(); ! /** Création de la barre d'outil.*/ ! wxToolBar* CreateToolBar(); /** Contrôles divers.*/ *************** *** 139,143 **** { BVD_NONE = 0, ! BVD_HANDDRAW = 1 }; --- 140,150 ---- { BVD_NONE = 0, ! BVD_HANDDRAW = 1, ! BVD_BRUSH = 2, ! BVD_SPRAY = 3, ! BVD_LINE = 4, ! BVD_RECT = 5, ! BVD_ELLIPSE = 6, ! BVD_RRECT = 7 }; *************** *** 148,151 **** --- 155,163 ---- wxPoint m_pt; + /** Interception de la sélection d'un outil.*/ + void OnTool(wxCommandEvent& event); + /** Interception de l'update des outils.*/ + void OnUpdateTools(wxUpdateUIEvent& event); + /** Interception d'un drag gauche.*/ void OnLeftDrag(wxExtendedMouseEvent& event); |
|
From: Emilien K. <cur...@us...> - 2005-01-08 14:48:59
|
Update of /cvsroot/wxdevcenter/StdPlugin/data/img/bmp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26792/data/img/bmp Added Files: brush.png ellipse.png handdraw.png line.png rect.png rrect.png spray.png Log Message: ToolBar des outils de dessin --- NEW FILE: line.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: rrect.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: rect.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ellipse.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: spray.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: brush.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: handdraw.png --- (This appears to be a binary file; contents omitted.) |
|
From: Emilien K. <cur...@us...> - 2005-01-08 14:48:11
|
Update of /cvsroot/wxdevcenter/StdPlugin/data/img/bmp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26658/bmp Log Message: Directory /cvsroot/wxdevcenter/StdPlugin/data/img/bmp added to the repository |
|
From: Emilien K. <cur...@us...> - 2005-01-07 22:10:53
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27644/src Modified Files: BitmapCtrl.cpp BitmapDocView.cpp Log Message: Passage de wxImage vers wxBitmap pour le stockage interne des images. Début du tracé à main levé Index: BitmapCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapCtrl.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BitmapCtrl.cpp 7 Jan 2005 17:41:44 -0000 1.4 --- BitmapCtrl.cpp 7 Jan 2005 22:10:42 -0000 1.5 *************** *** 44,48 **** wxControl(parent, id, pos, size, style), wxExtendedMouseInterface(), ! m_Image(48,48), m_iZoom(0), m_bExtraScroll(false), --- 44,48 ---- wxControl(parent, id, pos, size, style), wxExtendedMouseInterface(), ! m_Bmp(48,48), m_iZoom(0), m_bExtraScroll(false), *************** *** 60,67 **** // Attache un image au controle. ! void BitmapCtrl::SetImage(const wxImage& img) { ! m_Image = img; ! SetVirtualSize(m_Image.GetWidth(), m_Image.GetHeight()); Refresh(); } --- 60,67 ---- // Attache un image au controle. ! void BitmapCtrl::SetBitmap(const wxBitmap& Bmp) { ! m_Bmp = Bmp; ! SetVirtualSize(m_Bmp.GetWidth(), m_Bmp.GetHeight()); Refresh(); } *************** *** 84,89 **** void BitmapCtrl::OnDraw(wxDC* pDC) { ! wxSize sz(m_Image.GetWidth()*ZoomToScale(), m_Image.GetHeight()*ZoomToScale()); ! wxBitmap bmp = m_Image.Scale(sz.x, sz.y); pDC->DrawBitmap(bmp, m_ptOrigin.x - GetScrollPos(wxHORIZONTAL), m_ptOrigin.y - GetScrollPos(wxVERTICAL)); } --- 84,89 ---- void BitmapCtrl::OnDraw(wxDC* pDC) { ! wxSize sz(m_Bmp.GetWidth()*ZoomToScale(), m_Bmp.GetHeight()*ZoomToScale()); ! wxBitmap bmp = m_Bmp.ConvertToImage().Scale(sz.x, sz.y); pDC->DrawBitmap(bmp, m_ptOrigin.x - GetScrollPos(wxHORIZONTAL), m_ptOrigin.y - GetScrollPos(wxVERTICAL)); } *************** *** 112,116 **** } else ! szv = wxSize(m_Image.GetWidth(), m_Image.GetHeight()); wxSize szc = GetClientSize(); --- 112,116 ---- } else ! szv = wxSize(m_Bmp.GetWidth(), m_Bmp.GetHeight()); wxSize szc = GetClientSize(); *************** *** 165,169 **** { wxSize szc = GetClientSize(); ! wxPoint pt(m_Image.GetWidth()*ZoomToScale(), m_Image.GetHeight()*ZoomToScale()); pt.x = -(szc.x - pt.x)/2; --- 165,169 ---- { wxSize szc = GetClientSize(); ! wxPoint pt(m_Bmp.GetWidth()*ZoomToScale(), m_Bmp.GetHeight()*ZoomToScale()); pt.x = -(szc.x - pt.x)/2; *************** *** 288,292 **** iPos = (iOrient==wxVERTICAL)?GetVirtualSize().y:GetVirtualSize().x; else ! iPos = (iOrient==wxVERTICAL)?m_Image.GetHeight():m_Image.GetWidth(); } else if(event.GetEventType()==wxEVT_SCROLLWIN_THUMBTRACK) --- 288,292 ---- iPos = (iOrient==wxVERTICAL)?GetVirtualSize().y:GetVirtualSize().x; else ! iPos = (iOrient==wxVERTICAL)?m_Bmp.GetHeight():m_Bmp.GetWidth(); } else if(event.GetEventType()==wxEVT_SCROLLWIN_THUMBTRACK) Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BitmapDocView.cpp 7 Jan 2005 17:41:44 -0000 1.2 --- BitmapDocView.cpp 7 Jan 2005 22:10:42 -0000 1.3 *************** *** 12,15 **** --- 12,17 ---- #include <wxDevCenter/DocManager.h> + #include <wx/dcmemory.h> + using namespace wxDevCenter; *************** *** 30,35 **** bool BitmapDocument::LoadDocument(wxDevCenter::Archive *ar) { ! if(!m_Image.LoadFile((wxInputStream&)*ar)) wxMessageBox(WXDC_BITMAP_ERROR_LOAD); return true; } --- 32,42 ---- bool BitmapDocument::LoadDocument(wxDevCenter::Archive *ar) { ! wxImage Img; ! if(!Img.LoadFile((wxInputStream&)*ar)) ! { wxMessageBox(WXDC_BITMAP_ERROR_LOAD); + return false; + } + m_Bmp = wxBitmap(Img); return true; } *************** *** 45,49 **** } ! if(!m_Image.SaveFile((wxOutputStream&)*ar, type)) { wxMessageBox(WXDC_BITMAP_ERROR_SAVE); --- 52,58 ---- } ! wxImage Img = m_Bmp.ConvertToImage(); ! ! if(!Img.SaveFile((wxOutputStream&)*ar, type)) { wxMessageBox(WXDC_BITMAP_ERROR_SAVE); *************** *** 56,64 **** void BitmapDocument::SetPixel(wxPoint pt, wxColour col) { ! m_Image.SetRGB(pt.x, pt.y, col.Red(), col.Green(), col.Blue()); UpdateAllViews(NULL); } // Revoie le type de bitmap depuis l'extension d'un fichier. --- 65,91 ---- void BitmapDocument::SetPixel(wxPoint pt, wxColour col) { ! wxMemoryDC dc; ! dc.SelectObject(m_Bmp); ! ! wxPen pen(col); ! dc.SetPen(pen); ! dc.DrawPoint(pt); ! UpdateAllViews(NULL); } + // Dessine un trait. + void BitmapDocument::DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col) + { + wxMemoryDC dc; + dc.SelectObject(m_Bmp); + + wxPen pen(col); + dc.SetPen(pen); + dc.DrawLine(ptFrom, ptTo); + + UpdateAllViews(NULL); + } // Revoie le type de bitmap depuis l'extension d'un fichier. *************** *** 114,117 **** --- 141,146 ---- EVT_EXTMOUSE_LEFT_MOVE_DRAG(ID_BITMAP_CTRL, BitmapView::OnLeftDrag) + EVT_EXTMOUSE_LEFT_BEGIN_DRAG(ID_BITMAP_CTRL, BitmapView::OnLeftDragStart) + EVT_EXTMOUSE_LEFT_END_DRAG(ID_BITMAP_CTRL, BitmapView::OnLeftDragEnd) EVT_COMMAND_RANGE(ID_COLOR_PALETTE_START, ID_COLOR_PALETTE_END, wxEVT_COMMAND_LEFT_CLICK, BitmapView::OnColorPaletteLeftClick) *************** *** 124,139 **** EVT_TEXT(ID_COLOR_SLIDER_GREEN, BitmapView::OnSliderSpinTextChanged) EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) END_EVENT_TABLE() - /** Interception d'un drag gauche.*/ - void BitmapView::OnLeftDrag(wxExtendedMouseEvent& event) - { - GetDocument()->SetPixel( m_pBitmapCtrl->ClientToBitmap(event.GetToPos()) , wxColour(0, 0, 0)); - wxLogDebug("BitmapView::OnLeftDrag (%d,%d)-(%d,%d)", event.GetFromPos().x, event.GetFromPos().y, - event.GetToPos().x, event.GetToPos().y); - } BitmapView::BitmapView(): ! View() { wxMenu *pMenu; --- 153,164 ---- EVT_TEXT(ID_COLOR_SLIDER_GREEN, BitmapView::OnSliderSpinTextChanged) EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) + + EVT_ERASE_BACKGROUND(BitmapView::OnEraseBackground) END_EVENT_TABLE() BitmapView::BitmapView(): ! View(), ! m_BVD(BVD_NONE) { wxMenu *pMenu; *************** *** 146,149 **** --- 171,176 ---- bool BitmapView::OnCreate() { + SetWindowStyleFlag(GetWindowStyleFlag()|wxCLIP_CHILDREN); + m_pBitmapCtrl = new BitmapCtrl(this, ID_BITMAP_CTRL, wxDefaultPosition, wxDefaultSize, 0); wxSizer *pSizer = new wxBoxSizer(wxHORIZONTAL); *************** *** 161,164 **** --- 188,228 ---- } + int g_NbDefaultColor = 8*11; + wxColor g_DefaultPalette[WXDC_BITMAP_PALETTE_SIZE] = { + wxColour(000, 000, 000), wxColour(128, 000, 000), wxColour(000, 128, 000), wxColour(128, 128, 000), + wxColour(000, 000, 128), wxColour(128, 000, 128), wxColour(000, 128, 128), wxColour(192, 192, 192), + + wxColour(128, 128, 128), wxColour(255, 000, 000), wxColour(000, 255, 000), wxColour(255, 255, 000), + wxColour(000, 000, 255), wxColour(255, 000, 255), wxColour(000, 255, 255), wxColour(255, 255, 255), + + wxColour( 38, 38, 38), wxColour( 76, 76, 76), wxColour(102, 102, 102), wxColour(128, 128, 128), + wxColour(153, 153, 153), wxColour(178, 178, 178), wxColour(204, 204, 204), wxColour(230, 230, 230), + + wxColour( 76, 000, 000), wxColour(127, 000, 000), wxColour(178, 000, 000), wxColour(229, 000, 000), + wxColour(255, 25, 25), wxColour(255, 76, 76), wxColour(255, 127, 127), wxColour(255, 178, 178), + + wxColour( 76, 57, 000), wxColour(127, 95, 000), wxColour(178, 133, 000), wxColour(229, 172, 000), + wxColour(255, 197, 25), wxColour(255, 210, 76), wxColour(255, 223, 127), wxColour(255, 255, 178), + + wxColour( 38, 76, 000), wxColour( 63, 127, 000), wxColour( 89, 178, 102), wxColour(114, 229, 000), + wxColour(140, 255, 025), wxColour(165, 255, 076), wxColour(191, 255, 127), wxColour(216, 255, 178), + + wxColour(000, 76, 19), wxColour(000, 127, 31), wxColour(000, 178, 44), wxColour(000, 229, 57), + wxColour( 25, 255, 82), wxColour( 76, 255, 121), wxColour(127, 255, 159), wxColour(178, 255, 197), + + wxColour(000, 76, 76), wxColour(000, 127, 127), wxColour(000, 178, 178), wxColour(000, 229, 229), + wxColour( 25, 255, 255), wxColour( 76, 255, 255), wxColour(127, 255, 255), wxColour(178, 255, 255), + + wxColour(000, 19, 76), wxColour(000, 31, 127), wxColour(000, 44, 178), wxColour(000, 57, 229), + wxColour( 25, 82, 255), wxColour( 76, 121, 255), wxColour(127, 159, 255), wxColour(178, 197, 255), + + wxColour( 38, 000, 76), wxColour( 63, 000, 127), wxColour( 89, 000, 178), wxColour(114, 000, 228), + wxColour(140, 25, 255), wxColour(165, 76, 255), wxColour(191, 127, 255), wxColour(216, 178, 255), + + wxColour( 76, 000, 57), wxColour(127, 000, 95), wxColour(178, 000, 133), wxColour(229, 000, 172), + wxColour(255, 25, 197), wxColour(255, 76, 210), wxColour(255, 127, 223), wxColour(255, 178, 235) + }; + + // Création de la barre de controle. wxPanel* BitmapView::CreateControlPanel() *************** *** 169,173 **** // Liste de couleurs ! pHSizer = new wxGridSizer(WXDC_BITMAP_PALETTE_WIDTH, WXDC_BITMAP_PALETTE_HEIGHT, 0, 0); for(int i=0; i<WXDC_BITMAP_PALETTE_SIZE; i++) { --- 233,237 ---- // Liste de couleurs ! pHSizer = new wxGridSizer(WXDC_BITMAP_PALETTE_HEIGHT, WXDC_BITMAP_PALETTE_WIDTH, 0, 0); for(int i=0; i<WXDC_BITMAP_PALETTE_SIZE; i++) { *************** *** 175,178 **** --- 239,244 ---- pHSizer->Add(m_pColourArray[i], 1, wxGROW); pHSizer->SetItemMinSize(i, 16, 16); + if(i<g_NbDefaultColor) + m_pColourArray[i]->SetColour(g_DefaultPalette[i]); } pGlobalSizer->Add(pHSizer, 0, wxGROW); *************** *** 232,236 **** void BitmapView::OnUpdate(View* WXUNUSED(pSender), unsigned int WXUNUSED(nUpdateCode), void* WXUNUSED(pUpdateInfo)) { ! m_pBitmapCtrl->SetImage(GetDocument()->GetImage()); } --- 298,302 ---- void BitmapView::OnUpdate(View* WXUNUSED(pSender), unsigned int WXUNUSED(nUpdateCode), void* WXUNUSED(pUpdateInfo)) { ! m_pBitmapCtrl->SetBitmap(GetDocument()->GetBitmap()); } *************** *** 325,328 **** --- 391,424 ---- } + // Intercepte la peinture du fond pour empecher le flicking. + void BitmapView::OnEraseBackground(wxEraseEvent& WXUNUSED(event)) + { + } + + + /** Interception d'un drag gauche.*/ + void BitmapView::OnLeftDrag(wxExtendedMouseEvent& event) + { + wxPoint pt = m_pBitmapCtrl->ClientToBitmap(event.GetToPos()); + + if(m_BVD == BVD_HANDDRAW) + { + GetDocument()->DrawLine(m_pt, pt, m_pColourLeftButton->GetColour()); + m_pt = pt; + } + } + + // Interception d'un début de drag gauche. + void BitmapView::OnLeftDragStart(wxExtendedMouseEvent& event) + { + m_BVD = BVD_HANDDRAW; + m_pt = m_pBitmapCtrl->ClientToBitmap(event.GetFromPos()); + } + + // Interception d'une fin de drag gauche. + void BitmapView::OnLeftDragEnd(wxExtendedMouseEvent& WXUNUSED(event)) + { + m_BVD = BVD_NONE; + } ////////////////////////////////////////////////////////////////////// |
|
From: Emilien K. <cur...@us...> - 2005-01-07 22:10:50
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27644/include/wxDevCenter/StdPlugin Modified Files: BitmapCtrl.h BitmapDocView.h Log Message: Passage de wxImage vers wxBitmap pour le stockage interne des images. Début du tracé à main levé Index: BitmapCtrl.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapCtrl.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BitmapCtrl.h 7 Jan 2005 17:41:43 -0000 1.4 --- BitmapCtrl.h 7 Jan 2005 22:10:41 -0000 1.5 *************** *** 46,50 **** /** L'image liée au controle.*/ ! wxImage m_Image; private: --- 46,50 ---- /** L'image liée au controle.*/ ! wxBitmap m_Bmp; private: *************** *** 74,82 **** * A utiliser pour modifier directement l'image. */ ! wxImage& Image(){return m_Image;} /** Attache un image au controle. * @param img Nouvelle image fixée au controle.*/ ! void SetImage(const wxImage& img); --- 74,82 ---- * A utiliser pour modifier directement l'image. */ ! wxBitmap& Bitmap(){return m_Bmp;} /** Attache un image au controle. * @param img Nouvelle image fixée au controle.*/ ! void SetBitmap(const wxBitmap& Bmp); Index: BitmapDocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapDocView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BitmapDocView.h 7 Jan 2005 17:41:43 -0000 1.2 --- BitmapDocView.h 7 Jan 2005 22:10:41 -0000 1.3 *************** *** 39,43 **** protected: /** Buffer de l'image.*/ ! wxImage m_Image; /** Charge le texte depuis l'archive.*/ --- 39,43 ---- protected: /** Buffer de l'image.*/ ! wxBitmap m_Bmp; /** Charge le texte depuis l'archive.*/ *************** *** 49,57 **** /** Acces au buffer de l'image.*/ ! wxImage& GetImage(){return m_Image;} /** Fixe la couleur d'un pixel.*/ void SetPixel(wxPoint pt, wxColour col); /** Revoie le type de bitmap depuis l'extension d'un fichier. * @param strFile Nom du fichier. --- 49,60 ---- /** Acces au buffer de l'image.*/ ! wxBitmap& GetBitmap(){return m_Bmp;} /** Fixe la couleur d'un pixel.*/ void SetPixel(wxPoint pt, wxColour col); + /** Dessine un trait.*/ + void DrawLine(wxPoint ptFrom, wxPoint ptTo, wxColour col); + /** Revoie le type de bitmap depuis l'extension d'un fichier. * @param strFile Nom du fichier. *************** *** 63,67 **** #define WXDC_BITMAP_PALETTE_WIDTH 8 ! #define WXDC_BITMAP_PALETTE_HEIGHT 12 #define WXDC_BITMAP_PALETTE_SIZE (WXDC_BITMAP_PALETTE_WIDTH*WXDC_BITMAP_PALETTE_HEIGHT) --- 66,70 ---- #define WXDC_BITMAP_PALETTE_WIDTH 8 ! #define WXDC_BITMAP_PALETTE_HEIGHT 11 #define WXDC_BITMAP_PALETTE_SIZE (WXDC_BITMAP_PALETTE_WIDTH*WXDC_BITMAP_PALETTE_HEIGHT) *************** *** 88,94 **** void OnUpdateExtraScroll(wxUpdateUIEvent& event); - /** Interception d'un drag gauche.*/ - void OnLeftDrag(wxExtendedMouseEvent& event); - /** Création de la barre de controle.*/ wxPanel* CreateControlPanel(); --- 91,94 ---- *************** *** 133,136 **** --- 133,159 ---- void OnSliderSpinTextChanged(wxCommandEvent& event); + /** Intercepte la peinture du fond pour empecher le flicking.*/ + void OnEraseBackground(wxEraseEvent& event); + + enum BitmapViewDrawing + { + BVD_NONE = 0, + BVD_HANDDRAW = 1 + }; + + /** Fonction de tracé courante.*/ + BitmapViewDrawing m_BVD; + + /** Sauvegarde d'un point.*/ + wxPoint m_pt; + + /** Interception d'un drag gauche.*/ + void OnLeftDrag(wxExtendedMouseEvent& event); + /** Interception d'un début de drag gauche.*/ + void OnLeftDragStart(wxExtendedMouseEvent& event); + /** Interception d'une fin de drag gauche.*/ + void OnLeftDragEnd(wxExtendedMouseEvent& event); + + public: BitmapDocument* GetDocument(){return (BitmapDocument*)m_pDocument;} |
|
From: Emilien K. <cur...@us...> - 2005-01-07 17:41:57
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28962/include/wxDevCenter/StdPlugin Modified Files: BitmapCtrl.h BitmapDocView.h Controls.h extmouse.h language.h Log Message: Tout ce qu'il faut pour les bitmaps Index: BitmapCtrl.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapCtrl.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BitmapCtrl.h 4 Jan 2005 15:31:55 -0000 1.3 --- BitmapCtrl.h 7 Jan 2005 17:41:43 -0000 1.4 *************** *** 148,152 **** /** Interception des évènements de la souris.*/ ! void OnMouseEvent(wxMouseEvent& event); }; --- 148,152 ---- /** Interception des évènements de la souris.*/ ! void OnMouseEvents(wxMouseEvent& event); }; Index: extmouse.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/extmouse.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** extmouse.h 4 Jan 2005 16:53:05 -0000 1.4 --- extmouse.h 7 Jan 2005 17:41:43 -0000 1.5 *************** *** 293,295 **** --- 293,348 ---- (wxObjectEventFunction)(wxCommandEventFunction)(wxExtendedMouseEventFunction)&fn, (wxObject *) NULL ), + + #define EVT_EXTMOUSE_LEFT_EVENTS(id, fn) \ + EVT_EXTMOUSE_LEFT_CLICK(id, fn) \ + EVT_EXTMOUSE_LEFT_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_LEFT_DOWN(id, fn) \ + EVT_EXTMOUSE_LEFT_UP(id, fn) \ + EVT_EXTMOUSE_LEFT_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_LEFT_END_DRAG(id, fn) \ + EVT_EXTMOUSE_LEFT_MOVE_DRAG(id, fn) + + #define EVT_EXTMOUSE_RIGHT_EVENTS(id, fn) \ + EVT_EXTMOUSE_RIGHT_CLICK(id, fn) \ + EVT_EXTMOUSE_RIGHT_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_RIGHT_DOWN(id, fn) \ + EVT_EXTMOUSE_RIGHT_UP(id, fn) \ + EVT_EXTMOUSE_RIGHT_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_RIGHT_END_DRAG(id, fn) \ + EVT_EXTMOUSE_RIGHT_MOVE_DRAG(id, fn) + + #define EVT_EXTMOUSE_MIDDLE_EVENTS(id, fn) \ + EVT_EXTMOUSE_MIDDLE_CLICK(id, fn) \ + EVT_EXTMOUSE_MIDDLE_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_MIDDLE_DOWN(id, fn) \ + EVT_EXTMOUSE_MIDDLE_UP(id, fn) \ + EVT_EXTMOUSE_MIDDLE_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_MIDDLE_END_DRAG(id, fn) \ + EVT_EXTMOUSE_MIDDLE_MOVE_DRAG(id, fn) + + + #define EVT_EXTMOUSE_EVENTS(id, fn) \ + EVT_EXTMOUSE_LEFT_CLICK(id, fn) \ + EVT_EXTMOUSE_LEFT_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_LEFT_DOWN(id, fn) \ + EVT_EXTMOUSE_LEFT_UP(id, fn) \ + EVT_EXTMOUSE_LEFT_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_LEFT_END_DRAG(id, fn) \ + EVT_EXTMOUSE_LEFT_MOVE_DRAG(id, fn) \ + EVT_EXTMOUSE_RIGHT_CLICK(id, fn) \ + EVT_EXTMOUSE_RIGHT_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_RIGHT_DOWN(id, fn) \ + EVT_EXTMOUSE_RIGHT_UP(id, fn) \ + EVT_EXTMOUSE_RIGHT_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_RIGHT_END_DRAG(id, fn) \ + EVT_EXTMOUSE_RIGHT_MOVE_DRAG(id, fn) \ + EVT_EXTMOUSE_MIDDLE_CLICK(id, fn) \ + EVT_EXTMOUSE_MIDDLE_DBLCLICK(id, fn) \ + EVT_EXTMOUSE_MIDDLE_DOWN(id, fn) \ + EVT_EXTMOUSE_MIDDLE_UP(id, fn) \ + EVT_EXTMOUSE_MIDDLE_BEGIN_DRAG(id, fn) \ + EVT_EXTMOUSE_MIDDLE_END_DRAG(id, fn) \ + EVT_EXTMOUSE_MIDDLE_MOVE_DRAG(id, fn) + + #endif Index: BitmapDocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/BitmapDocView.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BitmapDocView.h 3 Dec 2004 16:51:28 -0000 1.1 --- BitmapDocView.h 7 Jan 2005 17:41:43 -0000 1.2 *************** *** 18,23 **** --- 18,28 ---- #include <wxDevCenter/DocView.h> #include <wxDevCenter/StdPlugin/BitmapCtrl.h> + #include <wxDevCenter/StdPlugin/extmouse.h> + #include <wxDevCenter/StdPlugin/Controls.h> #include <wx/image.h> + #include <wx/colour.h> + #include <wx/toolbar.h> + class wxDevCenter::Archive; *************** *** 45,52 **** /** Acces au buffer de l'image.*/ wxImage& GetImage(){return m_Image;} - }; --- 50,68 ---- /** Acces au buffer de l'image.*/ wxImage& GetImage(){return m_Image;} + /** Fixe la couleur d'un pixel.*/ + void SetPixel(wxPoint pt, wxColour col); + + /** Revoie le type de bitmap depuis l'extension d'un fichier. + * @param strFile Nom du fichier. + * @return Type du fichier parmis les wxBITMAP_TYPE_*. + */ + static int GetBitmapType(wxDevCenter::FilePath strFile); + }; + #define WXDC_BITMAP_PALETTE_WIDTH 8 + #define WXDC_BITMAP_PALETTE_HEIGHT 12 + #define WXDC_BITMAP_PALETTE_SIZE (WXDC_BITMAP_PALETTE_WIDTH*WXDC_BITMAP_PALETTE_HEIGHT) *************** *** 60,63 **** --- 76,80 ---- void OnSize(wxSizeEvent& event); BitmapCtrl *m_pBitmapCtrl; + wxPanel *m_pControlPanel; /** Interception du menu : Affichage/Centrer.*/ *************** *** 71,74 **** --- 88,136 ---- void OnUpdateExtraScroll(wxUpdateUIEvent& event); + /** Interception d'un drag gauche.*/ + void OnLeftDrag(wxExtendedMouseEvent& event); + + /** Création de la barre de controle.*/ + wxPanel* CreateControlPanel(); + + + /** Contrôles divers.*/ + /** Controle de couleur du bouton gauche.*/ + wxColourCtrl* m_pColourLeftButton; + /** Controle de couleur du bouton droit.*/ + wxColourCtrl* m_pColourRightButton; + /** Controle de couleur sélectionné pour édition aux sliders.*/ + wxColourCtrl* m_pColourSelected; + /** Tableau de couleurs utilisateurs.*/ + wxColourCtrl* m_pColourArray[WXDC_BITMAP_PALETTE_SIZE]; + + /** SliderSpin rouge*/ + wxSliderSpinCtrl* m_pRedSSC; + /** SliderSpin vert*/ + wxSliderSpinCtrl* m_pGreenSSC; + /** SliderSpin bleu*/ + wxSliderSpinCtrl* m_pBlueSSC; + /** Entrée couleur HTML.*/ + wxTextCtrl* m_pHTMLColor; + + /** Interception du changement de controle de couleur actif sur bouton gauche.*/ + void OnColorPaletteLeftClick(wxCommandEvent& event); + /** Interception du changement de controle de couleur actif sur bouton droit.*/ + void OnColorPaletteRightClick(wxCommandEvent& event); + /** Interception du click sur le bouton gauche. */ + void OnColorLeftClick(wxCommandEvent& event); + /** Interception du click sur le bouton droit. */ + void OnColorRightClick(wxCommandEvent& event); + + /** Fixe la couleur gauche.*/ + void SetLeftColor(wxColour col); + /** Fixe la couleur droite.*/ + void SetRightColor(wxColour col); + /** Fixe le controle de couleur actif.*/ + void SetActiveColorCtrl(wxColourCtrl* pColor); + + /** Intercepte le changement de couleur des wxSliderSpinCtrl.*/ + void OnSliderSpinTextChanged(wxCommandEvent& event); + public: BitmapDocument* GetDocument(){return (BitmapDocument*)m_pDocument;} Index: Controls.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/Controls.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Controls.h 6 Jan 2005 16:23:20 -0000 1.4 --- Controls.h 7 Jan 2005 17:41:43 -0000 1.5 *************** *** 14,17 **** --- 14,19 ---- #include <wx/spinctrl.h> #include <wx/slider.h> + #include <wx/tglbtn.h> + /** *************** *** 31,34 **** --- 33,40 ---- int GetMaxValue()const; void SetMaxValue(int maxValue); + + virtual wxSize GetBestSize() const; + + virtual bool SetBackgroundColour(const wxColour& colour); protected: void OnSpinChange(wxSpinEvent& event); *************** *** 66,68 **** --- 72,95 ---- }; + + + /** + * Controle de bouton pressoir à bitmap. + * Semblalbe à wxToggleButton mais avec une bitmap. + */ + class wxToggleBitmapButton : public wxStaticBitmap + { + DECLARE_EVENT_TABLE() + private: + bool m_bIsToggle; + public: + wxToggleBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& label, const wxPoint& pos=wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0); + + bool GetValue() const{return m_bIsToggle;} + void SetValue(bool bToggle); + + protected: + void OnMouseLeftUp(wxMouseEvent& event); + }; + #endif Index: language.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/language.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** language.h 19 Dec 2004 17:01:29 -0000 1.3 --- language.h 7 Jan 2005 17:41:43 -0000 1.4 *************** *** 52,71 **** #define WXDC_VIEWTYPE_TEXT_DESCRIPT "Advanced text editor with syntax-hilight and others." - #define WXDC_DOCTYPE_TEXTURE_NAME "Texture" - #define WXDC_DOCTYPE_TEXTURE_DESCRIPT "Bitmap with non top-left corner origin" - #define WXDC_VIEWTYPE_TEXTURE_STD_NAME "Texture editing" - #define WXDC_VIEWTYPE_TEXTURE_STD_DESCRIPT "Texture center positionning view" - - #define WXDC_DOCTYPE_ANIM_NAME "Animation" - #define WXDC_DOCTYPE_ANIM_DESCRIPT "Animation based on textures" - #define WXDC_DOCTYPE_ANIM_DEFAULTEXT "orx-anim" - #define WXDC_VIEWTYPE_ANIM_EDIT_NAME "Animation edition" - #define WXDC_VIEWTYPE_ANIM_EDIT_DESCRIPT "Animation edition with texture importing." - - #define WXDC_DOCTYPE_ANIMSET_NAME "Animation set" - #define WXDC_DOCTYPE_ANIMSET_DESCRIPT "Animations self-linked with transitions" - #define WXDC_DOCTYPE_ANIMSET_DEFAULTEXT "animset" - #define WXDC_VIEWTYPE_ANIMSET_EDIT_NAME "Animation set organigram" - #define WXDC_VIEWTYPE_ANIMSET_EDIT_DESCRIPT "Animation set organigram with link edition." ////////////////////////////////////////////////////////////////////// --- 52,55 ---- *************** *** 149,168 **** #define WXDC_SIMPLETEXT_REPLACE "Replace" - ////////////////////////////////////////////////////////////////////// - // Doc/Vue Bitmap et Texture - - #define WXDC_BITMAP_MENU_VIEW "View" - #define WXDC_BITMAP_MENU_VIEW_CENTER "Center" - #define WXDC_BITMAP_MENU_VIEW_EXTRASCROLL "Extra scroll" - - #define WXDC_TEXTURE_MENU_TEXTURE "Texture" - #define WXDC_TEXTURE_MENU_TEXTURE_MERGEIMAGE "Merge image ..." - - ////////////////////////////////////////////////////////////////////// - // Doc/Vue Animation - #define WXDC_ANIM_MENU_TEXTURE "&Texture" - #define WXDC_ANIM_MENU_TEXTURE_INSERT "&Insert...\tIns" - #define WXDC_ANIM_MENU_TEXTURE_REMOVE "&Remove\tDel" - ////////////////////////////////////////////////////////////////////// --- 133,136 ---- *************** *** 297,300 **** --- 265,280 ---- + ////////////////////////////////////////////////////////////////////// + // Doc/Vue Bitmap + + #define WXDC_BITMAP_MENU_VIEW wxT("View") + #define WXDC_BITMAP_MENU_VIEW_CENTER wxT("Center") + #define WXDC_BITMAP_MENU_VIEW_EXTRASCROLL wxT("Extra scroll") + + #define WXDC_BITMAP_ERROR_LOAD wxT("Can not load this bitmap.") + #define WXDC_BITMAP_ERROR_SAVE wxT("Can not save this bitmap.") + #define WXDC_BITMAP_ERROR_GIF_SAVE wxT("GIF bitmap can not be saved.") + + #endif |
|
From: Emilien K. <cur...@us...> - 2005-01-07 17:41:55
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28962/src Modified Files: BitmapCtrl.cpp BitmapDocView.cpp Controls.cpp Log Message: Tout ce qu'il faut pour les bitmaps Index: BitmapCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapCtrl.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BitmapCtrl.cpp 4 Jan 2005 15:31:56 -0000 1.3 --- BitmapCtrl.cpp 7 Jan 2005 17:41:44 -0000 1.4 *************** *** 34,41 **** EVT_SIZE(BitmapCtrl::OnSize) EVT_PAINT(BitmapCtrl::OnPaint) - EVT_MOUSEWHEEL(BitmapCtrl::OnMouseWheel) EVT_SCROLLWIN(BitmapCtrl::OnScroll) EVT_ERASE_BACKGROUND(BitmapCtrl::OnEraseBackground) ! EVT_MOUSE_EVENTS(BitmapCtrl::OnMouseEvent) END_EVENT_TABLE() --- 34,41 ---- EVT_SIZE(BitmapCtrl::OnSize) EVT_PAINT(BitmapCtrl::OnPaint) EVT_SCROLLWIN(BitmapCtrl::OnScroll) EVT_ERASE_BACKGROUND(BitmapCtrl::OnEraseBackground) ! EVT_MOUSEWHEEL(BitmapCtrl::OnMouseWheel) ! EVT_MOUSE_EVENTS(BitmapCtrl::OnMouseEvents) END_EVENT_TABLE() *************** *** 253,256 **** --- 253,263 ---- + // Interception des évènements de la souris. + void BitmapCtrl::OnMouseEvents(wxMouseEvent& event) + { + wxExtendedMouseInterface::OnMouseEvent(event); + } + + // Interception du wheel de la souris. void BitmapCtrl::OnMouseWheel(wxMouseEvent& event) *************** *** 326,336 **** - // Interception des évènements de la souris. - void BitmapCtrl::OnMouseEvent(wxMouseEvent& event) - { - wxExtendedMouseInterface::OnMouseEvent(event); - } - - --- 333,336 ---- Index: Controls.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/Controls.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Controls.cpp 6 Jan 2005 16:23:20 -0000 1.4 --- Controls.cpp 7 Jan 2005 17:41:44 -0000 1.5 *************** *** 29,35 **** m_pSpin = new wxSpinCtrl(this, ID_SSC_SPIN, wxString::Format(wxT("%d"), value), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, minValue, maxValue, value); ! pHSizer->Add(m_pSlider, 2, wxALIGN_CENTER_VERTICAL); ! pHSizer->Add(m_pSpin, 1, wxALIGN_CENTER_VERTICAL); ! SetSizer(pHSizer); } --- 29,39 ---- m_pSpin = new wxSpinCtrl(this, ID_SSC_SPIN, wxString::Format(wxT("%d"), value), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, minValue, maxValue, value); ! pHSizer->Add(m_pSlider, 2, wxALIGN_CENTER_VERTICAL|wxALL, 1); ! pHSizer->Add(m_pSpin, 1, wxALIGN_CENTER_VERTICAL|wxALL, 1); ! ! pHSizer->SetItemMinSize(m_pSlider, m_pSlider->GetMinSize()); ! pHSizer->SetItemMinSize(m_pSpin, m_pSpin->GetMinSize()); ! ! SetSizerAndFit(pHSizer); } *************** *** 85,88 **** --- 89,93 ---- { m_pSlider->SetValue(m_pSpin->GetValue()); + event.SetId(GetId()); event.Skip(); } *************** *** 91,94 **** --- 96,100 ---- { m_pSlider->SetValue(m_pSpin->GetValue()); + event.SetId(GetId()); event.Skip(); } *************** *** 97,103 **** --- 103,122 ---- { m_pSpin->SetValue(m_pSlider->GetValue()); + event.SetId(GetId()); event.Skip(); } + wxSize wxSliderSpinCtrl::GetBestSize() const + { + return m_pSpin->GetBestSize(); + } + + + bool wxSliderSpinCtrl::SetBackgroundColour(const wxColour& colour) + { + return (m_pSpin->SetBackgroundColour(colour)&& + m_pSlider->SetBackgroundColour(colour)&& + wxWindow::SetBackgroundColour(colour)); + } /** *************** *** 127,130 **** --- 146,153 ---- if(col.Ok()) SetBackgroundColour(col); + + wxString str; + str.Printf("#%02X%02X%02X", (int)col.Red(), (int)col.Green(), (int)col.Blue()); + SetToolTip(str); Refresh(); } *************** *** 162,163 **** --- 185,231 ---- ProcessEvent(evt); } + + + /** + * Implémentation de la classe wxToggleBitmapButton + */ + + wxToggleBitmapButton::wxToggleBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& label, const wxPoint& pos, const wxSize& size, long style): + wxStaticBitmap(parent, id, label, pos, size, style), + m_bIsToggle(false) + { + SetValue(true); + } + + BEGIN_EVENT_TABLE(wxToggleBitmapButton, wxControl) + EVT_LEFT_UP(wxToggleBitmapButton::OnMouseLeftUp) + END_EVENT_TABLE() + + + void wxToggleBitmapButton::SetValue(bool bToggle) + { + + wxLogDebug("wxToggleBitmapButton::SetValue %s", bToggle?"true":"false"); + + m_bIsToggle = bToggle; + + long style = GetWindowStyle(); + style &= ~wxBORDER_MASK; + + if(m_bIsToggle) + style |= wxRAISED_BORDER; + else + style |= wxSUNKEN_BORDER; + + SetWindowStyleFlag(style); + Refresh(); + } + + + void wxToggleBitmapButton::OnMouseLeftUp(wxMouseEvent& WXUNUSED(event)) + { + SetValue(!GetValue()); + wxCommandEvent evt(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, GetId()); + ProcessEvent(evt); + } + Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BitmapDocView.cpp 3 Dec 2004 16:51:29 -0000 1.1 --- BitmapDocView.cpp 7 Jan 2005 17:41:44 -0000 1.2 *************** *** 31,44 **** { if(!m_Image.LoadFile((wxInputStream&)*ar)) ! wxMessageBox(wxT("Machin truc")); return true; } ! bool BitmapDocument::SaveDocument(wxDevCenter::Archive* WXUNUSED(ar)) { return true; } ////////////////////////////////////////////////////////////////////// --- 31,86 ---- { if(!m_Image.LoadFile((wxInputStream&)*ar)) ! wxMessageBox(WXDC_BITMAP_ERROR_LOAD); return true; } ! bool BitmapDocument::SaveDocument(wxDevCenter::Archive* ar) { + int type = GetBitmapType(GetDocumentPath()); + if(type==wxBITMAP_TYPE_GIF) + { + wxMessageBox(WXDC_BITMAP_ERROR_GIF_SAVE); + return false; + } + + if(!m_Image.SaveFile((wxOutputStream&)*ar, type)) + { + wxMessageBox(WXDC_BITMAP_ERROR_SAVE); + return false; + } return true; } + // Fixe la couleur d'un pixel. + void BitmapDocument::SetPixel(wxPoint pt, wxColour col) + { + m_Image.SetRGB(pt.x, pt.y, col.Red(), col.Green(), col.Blue()); + UpdateAllViews(NULL); + } + + + + // Revoie le type de bitmap depuis l'extension d'un fichier. + int BitmapDocument::GetBitmapType(wxDevCenter::FilePath strFile) + { + int type = wxBITMAP_TYPE_INVALID; + wxString strExt = strFile.GetFileExt(); + if(strExt.CmpNoCase("bmp")) + type = wxBITMAP_TYPE_BMP; + else if(strExt.CmpNoCase("png")) + type = wxBITMAP_TYPE_PNG; + else if(strExt.CmpNoCase("gif")) + type = wxBITMAP_TYPE_GIF; + else if(strExt.CmpNoCase("pcx")) + type = wxBITMAP_TYPE_PCX; + else if(strExt.CmpNoCase("jpg")) + type = wxBITMAP_TYPE_JPEG; + else if(strExt.CmpNoCase("jpeg")) + type = wxBITMAP_TYPE_JPEG; + else if(strExt.CmpNoCase("ico")) + type = wxBITMAP_TYPE_ICO; + return type; + } ////////////////////////////////////////////////////////////////////// *************** *** 49,52 **** --- 91,107 ---- #define IDM_VIEW_EXTRASCROLL 6001 + #define ID_BITMAP_CTRL 101 + #define ID_PANEL_CTRL 102 + + #define ID_COLOR_CURSOR_LEFT 111 + #define ID_COLOR_CURSOR_RIGHT 112 + #define ID_COLOR_SLIDER_RED 113 + #define ID_COLOR_SLIDER_GREEN 114 + #define ID_COLOR_SLIDER_BLUE 115 + #define ID_COLOR_HTML 116 + + #define ID_COLOR_PALETTE_START 120 + #define ID_COLOR_PALETTE_END (ID_COLOR_PALETTE_START+WXDC_BITMAP_PALETTE_SIZE) + IMPLEMENT_DYNAMIC_CLASS(BitmapView, View) *************** *** 57,62 **** --- 112,136 ---- EVT_UPDATE_UI(IDM_VIEW_CENTER, BitmapView::OnUpdateViewCenter) EVT_UPDATE_UI(IDM_VIEW_EXTRASCROLL, BitmapView::OnUpdateExtraScroll) + + EVT_EXTMOUSE_LEFT_MOVE_DRAG(ID_BITMAP_CTRL, BitmapView::OnLeftDrag) + + EVT_COMMAND_RANGE(ID_COLOR_PALETTE_START, ID_COLOR_PALETTE_END, wxEVT_COMMAND_LEFT_CLICK, BitmapView::OnColorPaletteLeftClick) + EVT_COMMAND_RANGE(ID_COLOR_PALETTE_START, ID_COLOR_PALETTE_END, wxEVT_COMMAND_RIGHT_CLICK, BitmapView::OnColorPaletteRightClick) + + EVT_COMMAND_LEFT_CLICK(ID_COLOR_CURSOR_LEFT, BitmapView::OnColorLeftClick) + EVT_COMMAND_LEFT_CLICK(ID_COLOR_CURSOR_RIGHT, BitmapView::OnColorRightClick) + + EVT_TEXT(ID_COLOR_SLIDER_RED, BitmapView::OnSliderSpinTextChanged) + EVT_TEXT(ID_COLOR_SLIDER_GREEN, BitmapView::OnSliderSpinTextChanged) + EVT_TEXT(ID_COLOR_SLIDER_BLUE, BitmapView::OnSliderSpinTextChanged) END_EVENT_TABLE() + /** Interception d'un drag gauche.*/ + void BitmapView::OnLeftDrag(wxExtendedMouseEvent& event) + { + GetDocument()->SetPixel( m_pBitmapCtrl->ClientToBitmap(event.GetToPos()) , wxColour(0, 0, 0)); + wxLogDebug("BitmapView::OnLeftDrag (%d,%d)-(%d,%d)", event.GetFromPos().x, event.GetFromPos().y, + event.GetToPos().x, event.GetToPos().y); + } BitmapView::BitmapView(): *************** *** 72,82 **** bool BitmapView::OnCreate() { ! m_pBitmapCtrl = new BitmapCtrl(this, -1, wxDefaultPosition, wxDefaultSize, 0); ! wxSizer *pSizer = new wxBoxSizer(wxVERTICAL); pSizer->Add(m_pBitmapCtrl, 1, wxGROW); SetSizerAndFit(pSizer); return true; } void BitmapView::OnSize(wxSizeEvent& event) { --- 146,222 ---- bool BitmapView::OnCreate() { ! m_pBitmapCtrl = new BitmapCtrl(this, ID_BITMAP_CTRL, wxDefaultPosition, wxDefaultSize, 0); ! wxSizer *pSizer = new wxBoxSizer(wxHORIZONTAL); ! wxPanel* pPanel = CreateControlPanel(); ! pSizer->Add(m_pBitmapCtrl, 1, wxGROW); + pSizer->Add(pPanel, 0, wxGROW); + pSizer->SetItemMinSize(pPanel, 172, -1); SetSizerAndFit(pSizer); + + + SetActiveColorCtrl(m_pColourLeftButton); + return true; } + // Création de la barre de controle. + wxPanel* BitmapView::CreateControlPanel() + { + wxPanel *pPanel = new wxPanel(this, ID_PANEL_CTRL); + wxSizer *pGlobalSizer = new wxBoxSizer(wxVERTICAL), + *pHSizer; + + // Liste de couleurs + pHSizer = new wxGridSizer(WXDC_BITMAP_PALETTE_WIDTH, WXDC_BITMAP_PALETTE_HEIGHT, 0, 0); + for(int i=0; i<WXDC_BITMAP_PALETTE_SIZE; i++) + { + m_pColourArray[i] = new wxColourCtrl(pPanel, ID_COLOR_PALETTE_START+i, wxColour(255, 0, 0), wxDefaultPosition, wxSize(-1, 32), wxCOL_PICK_ON_DBLCLIC|wxSUNKEN_BORDER); + pHSizer->Add(m_pColourArray[i], 1, wxGROW); + pHSizer->SetItemMinSize(i, 16, 16); + } + pGlobalSizer->Add(pHSizer, 0, wxGROW); + + pGlobalSizer->AddSpacer(8); + + + // Deux boutons curseur + pHSizer = new wxBoxSizer(wxHORIZONTAL); + m_pColourLeftButton = new wxColourCtrl(pPanel, ID_COLOR_CURSOR_LEFT, wxColour(255, 0, 0), wxDefaultPosition, wxSize(-1, 32), wxCOL_PICK_ON_DBLCLIC|wxSUNKEN_BORDER); + m_pColourRightButton = new wxColourCtrl(pPanel, ID_COLOR_CURSOR_RIGHT, wxColour(0, 255, 0), wxDefaultPosition, wxSize(-1, 32), wxCOL_PICK_ON_DBLCLIC|wxSTATIC_BORDER); + pHSizer->Add(m_pColourLeftButton, 1, wxALL, 2); + pHSizer->Add(m_pColourRightButton, 1, wxALL, 2); + pHSizer->SetItemMinSize((size_t)0, -1, 32); + pHSizer->SetItemMinSize((size_t)1, -1, 32); + pGlobalSizer->Add(pHSizer, 0, wxGROW); + + pGlobalSizer->AddSpacer(8); + + + // SlideSpin + m_pRedSSC = new wxSliderSpinCtrl(pPanel, ID_COLOR_SLIDER_RED, 0, 0, 255); + m_pGreenSSC = new wxSliderSpinCtrl(pPanel, ID_COLOR_SLIDER_GREEN, 0, 0, 255); + m_pBlueSSC = new wxSliderSpinCtrl(pPanel, ID_COLOR_SLIDER_BLUE, 0, 0, 255); + + m_pRedSSC->SetBackgroundColour(wxColour(255, 192, 192)); + m_pGreenSSC->SetBackgroundColour(wxColour(192, 255, 192)); + m_pBlueSSC->SetBackgroundColour(wxColour(192, 192, 255)); + + pGlobalSizer->Add(m_pRedSSC, 0, wxGROW|wxALL, 4); + pGlobalSizer->Add(m_pGreenSSC, 0, wxGROW|wxALL, 4); + pGlobalSizer->Add(m_pBlueSSC, 0, wxGROW|wxALL, 4); + + // Couleur HTML + m_pHTMLColor = new wxTextCtrl(pPanel, ID_COLOR_HTML, "", wxDefaultPosition, wxDefaultSize, wxTE_READONLY); + pHSizer = new wxBoxSizer(wxHORIZONTAL); + pHSizer->Add(new wxStaticText(pPanel, -1, "HTML : #"), 0, wxALIGN_CENTER_VERTICAL); + pHSizer->Add(m_pHTMLColor, 1, wxGROW); + pGlobalSizer->Add(pHSizer, 0, wxGROW|wxALL, 4); + + pPanel->SetSizerAndFit(pGlobalSizer); + return pPanel; + } + + void BitmapView::OnSize(wxSizeEvent& event) { *************** *** 121,124 **** --- 261,329 ---- + // Interception du changement de controle de couleur actif sur bouton gauche. + void BitmapView::OnColorPaletteLeftClick(wxCommandEvent& event) + { + wxColourCtrl *pCol = m_pColourArray[event.GetId()-ID_COLOR_PALETTE_START]; + SetLeftColor(pCol->GetColour()); + } + + // Interception du changement de controle de couleur actif sur bouton droit. + void BitmapView::OnColorPaletteRightClick(wxCommandEvent& event) + { + wxColourCtrl *pCol = m_pColourArray[event.GetId()-ID_COLOR_PALETTE_START]; + SetRightColor(pCol->GetColour()); + } + + // Interception du click sur le bouton gauche. + void BitmapView::OnColorLeftClick(wxCommandEvent& WXUNUSED(event)) + { + SetActiveColorCtrl(m_pColourLeftButton); + } + + // Interception du click sur le bouton droit. + void BitmapView::OnColorRightClick(wxCommandEvent& WXUNUSED(event)) + { + SetActiveColorCtrl(m_pColourRightButton); + } + + // Fixe la couleur gauche. + void BitmapView::SetLeftColor(wxColour col) + { + m_pColourLeftButton->SetColour(col); + SetActiveColorCtrl(m_pColourLeftButton); + } + + // Fixe la couleur droite. + void BitmapView::SetRightColor(wxColour col) + { + m_pColourRightButton->SetColour(col); + SetActiveColorCtrl(m_pColourRightButton); + } + + // Fixe le controle de couleur actif. + void BitmapView::SetActiveColorCtrl(wxColourCtrl* pColor) + { + m_pColourSelected = pColor; + + wxColour col = pColor->GetColour(); + + m_pRedSSC->SetValue(col.Red()); + m_pGreenSSC->SetValue(col.Green()); + m_pBlueSSC->SetValue(col.Blue()); + + m_pHTMLColor->SetValue(wxString::Format(wxT("%02X%02X%02X"), (int)col.Red(), (int)col.Green(), (int)col.Blue())); + } + + // Intercepte le changement de couleur des wxSliderSpinCtrl. + void BitmapView::OnSliderSpinTextChanged(wxCommandEvent& WXUNUSED(event)) + { + wxColor col((unsigned char)m_pRedSSC->GetValue(), + (unsigned char)m_pGreenSSC->GetValue(), + (unsigned char)m_pBlueSSC->GetValue()); + m_pColourSelected->SetColour(col); + m_pHTMLColor->SetValue(wxString::Format(wxT("%02X%02X%02X"), (int)col.Red(), (int)col.Green(), (int)col.Blue())); + } + + ////////////////////////////////////////////////////////////////////// // BitmapMiniDoc |
|
From: Emilien K. <cur...@us...> - 2005-01-06 16:23:31
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7719/include/wxDevCenter/StdPlugin Modified Files: Controls.h Log Message: Envoi du RightClick pour le wxColourCtrl Index: Controls.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/Controls.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Controls.h 6 Jan 2005 16:20:47 -0000 1.3 --- Controls.h 6 Jan 2005 16:23:20 -0000 1.4 *************** *** 61,65 **** protected: ! void OnMouseClick(wxMouseEvent& event); void OnMouseDoubleClick(wxMouseEvent& event); }; --- 61,66 ---- protected: ! void OnMouseLeftClick(wxMouseEvent& event); ! void OnMouseRightClick(wxMouseEvent& event); void OnMouseDoubleClick(wxMouseEvent& event); }; |
|
From: Emilien K. <cur...@us...> - 2005-01-06 16:23:31
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7719/src Modified Files: Controls.cpp Log Message: Envoi du RightClick pour le wxColourCtrl Index: Controls.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/Controls.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Controls.cpp 6 Jan 2005 16:20:47 -0000 1.3 --- Controls.cpp 6 Jan 2005 16:23:20 -0000 1.4 *************** *** 119,123 **** BEGIN_EVENT_TABLE(wxColourCtrl, wxControl) EVT_LEFT_DCLICK(wxColourCtrl::OnMouseDoubleClick) ! EVT_LEFT_UP(wxColourCtrl::OnMouseClick) END_EVENT_TABLE() --- 119,124 ---- BEGIN_EVENT_TABLE(wxColourCtrl, wxControl) EVT_LEFT_DCLICK(wxColourCtrl::OnMouseDoubleClick) ! EVT_LEFT_UP(wxColourCtrl::OnMouseLeftClick) ! EVT_RIGHT_UP(wxColourCtrl::OnMouseRightClick) END_EVENT_TABLE() *************** *** 142,146 **** } ! void wxColourCtrl::OnMouseClick(wxMouseEvent& WXUNUSED(event)) { wxCommandEvent evt(wxEVT_COMMAND_LEFT_CLICK, GetId()); --- 143,147 ---- } ! void wxColourCtrl::OnMouseLeftClick(wxMouseEvent& WXUNUSED(event)) { wxCommandEvent evt(wxEVT_COMMAND_LEFT_CLICK, GetId()); *************** *** 148,151 **** --- 149,158 ---- } + void wxColourCtrl::OnMouseRightClick(wxMouseEvent& WXUNUSED(event)) + { + wxCommandEvent evt(wxEVT_COMMAND_RIGHT_CLICK, GetId()); + ProcessEvent(evt); + } + void wxColourCtrl::OnMouseDoubleClick(wxMouseEvent& WXUNUSED(event)) { |
|
From: Emilien K. <cur...@us...> - 2005-01-06 16:21:00
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7193/src Modified Files: Controls.cpp Log Message: Ajout du contrôle de couleur Index: Controls.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/Controls.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Controls.cpp 6 Jan 2005 15:07:48 -0000 1.2 --- Controls.cpp 6 Jan 2005 16:20:47 -0000 1.3 *************** *** 9,12 **** --- 9,16 ---- #include <wxDevCenter/StdPlugin/Controls.h> + + #include <wx/colordlg.h> + + /** * Implémentation de la classe wxSliderSpinCtrl *************** *** 95,96 **** --- 99,156 ---- event.Skip(); } + + + /** + * Implémentation de la classe wxColourCtrl + */ + + wxColourCtrl::wxColourCtrl(wxWindow* parent, wxWindowID id, unsigned char red, unsigned char green, unsigned char blue, const wxPoint& point, const wxSize& size, long style): + wxControl(parent, id, point, size, style) + { + SetColour(wxColour(red, green, blue)); + } + + wxColourCtrl::wxColourCtrl(wxWindow* parent, wxWindowID id, wxColour col, const wxPoint& point, const wxSize& size, long style): + wxControl(parent, id, point, size, style) + { + SetColour(col); + } + + BEGIN_EVENT_TABLE(wxColourCtrl, wxControl) + EVT_LEFT_DCLICK(wxColourCtrl::OnMouseDoubleClick) + EVT_LEFT_UP(wxColourCtrl::OnMouseClick) + END_EVENT_TABLE() + + void wxColourCtrl::SetColour(wxColour col) + { + if(col.Ok()) + SetBackgroundColour(col); + Refresh(); + } + + wxColour wxColourCtrl::GetColour()const + { + return GetBackgroundColour(); + } + + wxColour wxColourCtrl::PickColour() + { + wxColour col = wxGetColourFromUser(this, GetColour()); + if(col.Ok()) + SetColour(col); + return col; + } + + void wxColourCtrl::OnMouseClick(wxMouseEvent& WXUNUSED(event)) + { + wxCommandEvent evt(wxEVT_COMMAND_LEFT_CLICK, GetId()); + ProcessEvent(evt); + } + + void wxColourCtrl::OnMouseDoubleClick(wxMouseEvent& WXUNUSED(event)) + { + if((GetWindowStyle()&wxCOL_PICK_ON_DBLCLIC)!=0) + PickColour(); + wxCommandEvent evt(wxEVT_COMMAND_LEFT_DCLICK, GetId()); + ProcessEvent(evt); + } |
|
From: Emilien K. <cur...@us...> - 2005-01-06 16:21:00
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7193/include/wxDevCenter/StdPlugin Modified Files: Controls.h Log Message: Ajout du contrôle de couleur Index: Controls.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/Controls.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Controls.h 6 Jan 2005 15:07:47 -0000 1.2 --- Controls.h 6 Jan 2005 16:20:47 -0000 1.3 *************** *** 15,19 **** #include <wx/slider.h> ! class wxSliderSpinCtrl : public wxControl { --- 15,22 ---- #include <wx/slider.h> ! /** ! * Controle wxSpinCtrl avec un wxSlider sur son coté gauche. ! * Pratique pour slidé la valeur du spin. ! */ class wxSliderSpinCtrl : public wxControl { *************** *** 38,40 **** --- 41,67 ---- }; + + /** + * Contrôle de bouton de couleur. + * Génère des évènements wxEVT_COMMAND_LEFT_CLICK et wxEVT_COMMAND_LEFT_DCLICK. + */ + + #define wxCOL_PICK_ON_DBLCLIC 0x00001000 + + class wxColourCtrl : public wxControl + { + DECLARE_EVENT_TABLE() + public: + wxColourCtrl(wxWindow* parent, wxWindowID id, unsigned char red, unsigned char green, unsigned char blue, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCOL_PICK_ON_DBLCLIC); + wxColourCtrl(wxWindow* parent, wxWindowID id, wxColour col, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCOL_PICK_ON_DBLCLIC); + + void SetColour(wxColour col); + wxColour GetColour()const; + wxColour PickColour(); + + protected: + void OnMouseClick(wxMouseEvent& event); + void OnMouseDoubleClick(wxMouseEvent& event); + }; + #endif |
|
From: Emilien K. <cur...@us...> - 2005-01-06 15:07:57
|
Update of /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23015/include/wxDevCenter/StdPlugin Modified Files: Controls.h Log Message: Oups : placement et ID pour les interception d'évènements Index: Controls.h =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/include/wxDevCenter/StdPlugin/Controls.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Controls.h 6 Jan 2005 14:55:52 -0000 1.1 --- Controls.h 6 Jan 2005 15:07:47 -0000 1.2 *************** *** 32,35 **** --- 32,36 ---- void OnSpinTextChange(wxCommandEvent& event); void OnSliderChanged(wxScrollEvent& event); + void OnSize(wxSizeEvent& event); private: wxSlider* m_pSlider; |
|
From: Emilien K. <cur...@us...> - 2005-01-06 15:07:57
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23015/src Modified Files: Controls.cpp Log Message: Oups : placement et ID pour les interception d'évènements Index: Controls.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/Controls.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Controls.cpp 6 Jan 2005 14:55:52 -0000 1.1 --- Controls.cpp 6 Jan 2005 15:07:48 -0000 1.2 *************** *** 24,29 **** m_pSlider = new wxSlider(this, ID_SSC_SLIDER, value, minValue, maxValue, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); m_pSpin = new wxSpinCtrl(this, ID_SSC_SPIN, wxString::Format(wxT("%d"), value), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, minValue, maxValue, value); ! pHSizer->Add(m_pSlider, 2, wxGROW); ! pHSizer->Add(m_pSpin, 1, wxGROW); SetSizer(pHSizer); } --- 24,30 ---- m_pSlider = new wxSlider(this, ID_SSC_SLIDER, value, minValue, maxValue, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); m_pSpin = new wxSpinCtrl(this, ID_SSC_SPIN, wxString::Format(wxT("%d"), value), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, minValue, maxValue, value); ! ! pHSizer->Add(m_pSlider, 2, wxALIGN_CENTER_VERTICAL); ! pHSizer->Add(m_pSpin, 1, wxALIGN_CENTER_VERTICAL); SetSizer(pHSizer); } *************** *** 31,36 **** BEGIN_EVENT_TABLE(wxSliderSpinCtrl, wxControl) EVT_COMMAND_SCROLL(ID_SSC_SLIDER, wxSliderSpinCtrl::OnSliderChanged) ! EVT_SPINCTRL(ID_SSC_SLIDER, wxSliderSpinCtrl::OnSpinChange) ! EVT_TEXT(ID_SSC_SLIDER, wxSliderSpinCtrl::OnSpinTextChange) END_EVENT_TABLE() --- 32,38 ---- BEGIN_EVENT_TABLE(wxSliderSpinCtrl, wxControl) EVT_COMMAND_SCROLL(ID_SSC_SLIDER, wxSliderSpinCtrl::OnSliderChanged) ! EVT_SPINCTRL(ID_SSC_SPIN, wxSliderSpinCtrl::OnSpinChange) ! EVT_TEXT(ID_SSC_SPIN, wxSliderSpinCtrl::OnSpinTextChange) ! EVT_SIZE(wxSliderSpinCtrl::OnSize) END_EVENT_TABLE() *************** *** 69,72 **** --- 71,81 ---- } + + void wxSliderSpinCtrl::OnSize(wxSizeEvent& event) + { + Layout(); + event.Skip(); + } + void wxSliderSpinCtrl::OnSpinChange(wxSpinEvent& event) { |