|
- /* DeviceGUI composite Widget
- * Copyleft (C) 2002 David Griffiths <dave@pawfal.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
- #include "Fl_CommentGUI.h"
- #include <FL/fl_ask.H>
- #include <FL/fl_draw.H>
- #include "../../SpiralSynthModularInfo.h"
-
- Fl_CommentGUI::Fl_CommentGUI(const DeviceGUIInfo& Info, Fl_Window *PW, Fl_Pixmap *Icon) :
- Fl_DeviceGUI(Info,PW,Icon),
- m_Comment("double click to edit.")
- {
- box(FL_NO_BOX);
- m_DragBar->box(FL_NO_BOX);
- m_DragBar->label(m_Comment.c_str());
- m_DragBar->color(SpiralSynthModularInfo::GUICOL_Device);
- // m_DragBar->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
- }
-
- int Fl_CommentGUI::handle(int event)
- {
- if (Fl::event_button()==1 && event==FL_PUSH && Fl::event_clicks()==1)
- {
- const char *t=fl_input("and your comment is:", m_Comment.c_str());
- if (t)
- {
- string temp(t);
- if (temp!="")
- {
- m_Comment=temp;
- m_DragBar->label(m_Comment.c_str());
- redraw();
- //int x,y;
- //fl_measure(m_Comment.c_str(),x,y);
- //m_DragBar->size(x,y);
- }
- }
- }
-
- return Fl_DeviceGUI::handle(event);
- }
-
- void Fl_CommentGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime)
- {
- Fl_DeviceGUI::Setup(Info,FirstTime);
- }
-
- void Fl_CommentGUI::Clear()
- {
- Fl_DeviceGUI::Clear();
- }
-
- void Fl_CommentGUI::StreamOut(ostream &s)
- {
- s<<1<<" ";
- s<<m_Comment.size()<<" ";
- s<<m_Comment<<endl;
- }
-
- void Fl_CommentGUI::StreamIn(istream &s)
- {
- unsigned int size,version;
- string temp;
-
- s>>version;
- s>>size;
- size++; // see below
- char *str = new char[size+1];
- s.read(str,size);
- str[size]='\0';
- // have to move the pointer on by one, as the string
- // starts with " ", as the file pointer starts on
- // a blank space (after streaming the size)
- m_Comment=str+1;
- delete[] str;
-
- m_DragBar->label(m_Comment.c_str());
- }
|