| Laxkit
    0.0.7.1
    | 
Interface for manipulating CaptionData objects. More...

| Public Member Functions | |
| CaptionInterface (int nid, Laxkit::Displayer *ndp, const char *newtext) | |
| virtual anInterface * | duplicate (anInterface *dup) | 
| Return new CaptionInterface. | |
| virtual const char * | IconId () | 
| virtual const char * | Name () | 
| virtual const char * | whattype () | 
| virtual const char * | whatdatatype () | 
| virtual void | deletedata () | 
| Sets data=NULL. | |
| virtual ObjectContext * | Context () | 
| virtual int | LBDown (int x, int y, unsigned int state, int count, const Laxkit::LaxMouse *d) | 
| If !data on LBDown, then make a new one... | |
| virtual int | LBUp (int x, int y, unsigned int state, const Laxkit::LaxMouse *d) | 
| If data, then call viewport->ObjectMoved(data). | |
| virtual int | MouseMove (int x, int y, unsigned int state, const Laxkit::LaxMouse *d) | 
| virtual int | CharInput (unsigned int ch, const char *buffer, int len, unsigned int state, const Laxkit::LaxKeyboard *d) | 
| virtual int | KeyUp (unsigned int ch, unsigned int state, const Laxkit::LaxKeyboard *d) | 
| virtual int | Refresh () | 
| virtual int | DrawData (Laxkit::anObject *ndata, Laxkit::anObject *a1=NULL, Laxkit::anObject *a2=NULL, int info=0) | 
| Draw ndata, but remember that data should still be the resident data afterward. | |
| virtual int | UseThis (Laxkit::anObject *nobj, unsigned int mask=0) | 
| Check out nobj and use it as the data if possible. | |
| virtual CaptionData * | newData () | 
| Create and return new data, also calls viewport->newData(newdata,0). | |
| virtual int | InterfaceOn () | 
| Sets showdecs=3, and needtodraw=1. | |
| virtual int | InterfaceOff () | 
| Calls Clear(), sets showdecs=0, and needtodraw=1. | |
| virtual void | Clear (SomeData *d) | 
|  Public Member Functions inherited from LaxInterfaces::anInterface | |
| anInterface () | |
| This constructor assigns id=getUniqueNumber(). | |
| anInterface (int nid) | |
| Constructor to assign just the id, set other stuff to 0. | |
| anInterface (int nid, Laxkit::Displayer *ndp) | |
| anInterface (anInterface *nowner, int nid) | |
| Constructor to assign owner and id. | |
| anInterface (anInterface *nowner, int nid, Laxkit::Displayer *ndp) | |
| virtual Laxkit::ShortcutHandler * | GetShortcuts () | 
| Return a ShortcutHandler that contains stacks of bound shortcuts and possible actions. | |
| virtual int | PerformAction (int actionnumber) | 
| virtual int | draws (const char *atype) | 
| Returns !strcmp(whatdatatype(),atype). | |
| virtual void | Clear () | 
| Default just calls Clear(NULL). | |
| virtual int | RemoveChild () | 
| If there is a child, do something to remove it. | |
| virtual int | AddChild (LaxInterfaces::anInterface *ch, int absorbcount, int addbefore) | 
| virtual int | Needtodraw () | 
| Must return nonzero if the data needs to be drawn, that is to say Refresh must be called. | |
| virtual int | Needtodraw (int n) | 
| virtual int | MBDown (int x, int y, unsigned int state, int count, const Laxkit::LaxMouse *d) | 
| virtual int | RBDown (int x, int y, unsigned int state, int count, const Laxkit::LaxMouse *d) | 
| virtual int | MBUp (int x, int y, unsigned int state, const Laxkit::LaxMouse *d) | 
| virtual int | RBUp (int x, int y, unsigned int state, const Laxkit::LaxMouse *d) | 
| virtual int | WheelUp (int x, int y, unsigned int state, int count, const Laxkit::LaxMouse *d) | 
| virtual int | WheelDown (int x, int y, unsigned int state, int count, const Laxkit::LaxMouse *d) | 
| virtual int | DeviceChange (const Laxkit::DeviceEventData *e) | 
| virtual int | Event (const Laxkit::EventData *e, const char *mes) | 
| Respond to events, particularly menu events from a menu created from ContextMenu(). | |
| virtual void | ExposeChange (Laxkit::ScreenEventData *e) | 
| virtual void | ViewportResized () | 
| Called after the parent viewport gets resized. | |
| virtual void | Mapped () | 
| Called after the parent viewport gets mapped (made visible). | |
| virtual void | Unmapped () | 
| Called after the parent viewport gets mapped (made invisible, such as offscreen, not merely obscured). | |
| virtual void | PostMessage (const char *message) | 
| If viewport, use that, else app->postmessage(). | |
| virtual Laxkit::MenuInfo * | ContextMenu (int x, int y, int deviceid) | 
| Return a context sensitive menu for screen position (x,y). | |
| virtual int | UseThis (int id, int ndata) | 
| Return 1 if the id/ndata is used, otherwise zero. | |
| virtual int | UseThisObject (ObjectContext *oc) | 
| virtual Laxkit::anXWindow * | CurrentWindow (Laxkit::anXWindow *ncur) | 
| Set the window the interface works on to ncur. Returns ncur. If ncur==NULL, then just return current viewport. | |
| virtual void | Dp (Laxkit::Displayer *ndp) | 
| Set the dp to ndp, and update curwindow/viewport. | |
| virtual int | DrawDataDp (Laxkit::Displayer *tdp, SomeData *tdata, Laxkit::anObject *a1=NULL, Laxkit::anObject *a2=NULL, int info=1) | 
| Use a different dp to draw data with. | |
| virtual flatpoint | realtoscreen (flatpoint r) | 
| Do a little extra checking to find what point r should correspond to. | |
| virtual flatpoint | screentoreal (int x, int y) | 
| Do a little extra checking to find what point (x,y) should correspond to. | |
| virtual double | Getmag (int c=0) | 
| Do a little extra checking to find what the magnification is. | |
| virtual double | GetVMag (int x, int y) | 
| Do a little extra checking to find what the magnification is. | |
| virtual void | dump_out (FILE *f, int indent, int what, Laxkit::anObject *savecontext) | 
| Default settings saving is to output nothing. | |
| virtual void | dump_in_atts (LaxFiles::Attribute *att, int flag, Laxkit::anObject *loadcontext) | 
| Placeholder for dumping in settings. | |
|  Public Member Functions inherited from LaxFiles::DumpUtility | |
| virtual Attribute * | dump_out_atts (Attribute *att, int what, Laxkit::anObject *savecontext) | 
| Default is return NULL. what==0 means write out normal Attribute formatted things. | |
| virtual void | dump_in (FILE *f, int indent, int what, Laxkit::anObject *loadcontext, Attribute **att) | 
| Read in a file segment as an Attribute, and pass parsing duties to dump_in_atts. | |
| virtual | ~DumpUtility () | 
| Empty virtual destructor. | |
| Public Attributes | |
| int | showdecs | 
| CaptionData * | data | 
| ObjectContext * | coc | 
|  Public Attributes inherited from LaxInterfaces::anInterface | |
| char * | name | 
| An instance name.. ***don't think this is used anywhere at the moment. | |
| int | id | 
| Must be positive, other values are reserved for internal use. | |
| unsigned long | style | 
| Style flags for the interface. Meaning depends on the interface. | |
| int | interface_type | 
| What sort of interface this is. Default is INTERFACE_Tool. | |
| Laxkit::anXApp * | app | 
| The application this interface works with. | |
| Laxkit::anXWindow * | curwindow | 
| The window the interface currently works on. | |
| anInterface * | owner | 
| The interface that owns this one. | |
| anInterface * | child | 
| The child of this interface. See anInterface::owner. This is dec_counted in destructor. | |
| int | primary | 
| Whether this is supposed to be a 'main' interface, or merely a helper. | |
| int | needtodraw | 
| Whether the interface thinks it has to refresh. | |
| Protected Attributes | |
| int | mode | 
| int | mousedragged | 
| flatpoint | leftp | 
| int | mx | 
| int | my | 
| int | lx | 
| int | ly | 
| int | caretline | 
| int | caretpos | 
|  Protected Attributes inherited from LaxInterfaces::anInterface | |
| Laxkit::ButtonDownInfo | buttondown | 
| ViewportWindow * | viewport | 
| curwindow dynamically cast to ViewportWindow. Thus, it will be NULL if it is not a ViewportWindow. | |
| Laxkit::Displayer * | dp | 
| The Displayer used by the controlling window. | |
Interface for manipulating CaptionData objects.
| 
 | virtual | 
Sets data=NULL.
That results in data->dec_count() being called somewhere along the line.
References Laxkit::anObject::dec_count().
| 
 | virtual | 
Return new CaptionInterface.
If dup!=NULL and it cannot be cast to CaptionInterface, then return NULL.
Reimplemented from LaxInterfaces::anInterface.
| 
 | virtual | 
If !data on LBDown, then make a new one...
Get rid of old data if not clicking in it.
Reimplemented from LaxInterfaces::anInterface.
References LaxInterfaces::ViewportWindow::ChangeContext(), LaxInterfaces::ViewportWindow::ChangeObject(), Laxkit::ButtonDownInfo::down(), LaxInterfaces::CaptionData::dump_out(), LaxInterfaces::ObjectContext::duplicate(), LaxInterfaces::ViewportWindow::FindObject(), LaxInterfaces::anInterface::Getmag(), Laxkit::anObject::inc_count(), mode, LaxInterfaces::anInterface::needtodraw, newData(), LaxInterfaces::anInterface::primary, LaxInterfaces::anInterface::screentoreal(), Laxkit::ButtonDownInfo::up(), and LaxInterfaces::anInterface::viewport.
| 
 | virtual | 
Create and return new data, also calls viewport->newData(newdata,0).
Please note that this function is not a redefinition of anything. It is used internally to get a new instance of CaptionData and also tell the viewport about it.
This function causes a new CaptionData to be created and to have a count of 2. Currently, new CaptionData makes the maxx/maxy be the image pixel width/height..
References LaxInterfaces::ObjectContext::duplicate(), LaxInterfaces::ViewportWindow::NewData(), LaxInterfaces::SomeDataFactory::newObject(), LaxInterfaces::CaptionData::SetText(), LaxInterfaces::somedatafactory, and LaxInterfaces::anInterface::viewport.
Referenced by LBDown().
| 
 | virtual | 
Note that this calls imlib_context_set_drawable(dp->GetWindow()). Please note that Imlib does not naturally handle skewed fonts, and this function doesn't either.
Returns 1 if no data, -1 if thing was offscreen, or 0 if thing drawn.
Reimplemented from LaxInterfaces::anInterface.
References LaxInterfaces::anInterface::dp, Laxkit::Displayer::drawline(), Laxkit::Displayer::drawpoint(), Laxkit::Displayer::DrawReal(), Laxkit::Displayer::DrawScreen(), Laxkit::NumStack< T >::e, Laxkit::PtrStack< T >::e, LaxInterfaces::CaptionData::FindBBox(), LaxInterfaces::CaptionData::fontsize, Laxkit::DoubleBBox::intersect(), isblank(), Laxkit::Displayer::LineAttributes(), Laxkit::Displayer::Maxx, Laxkit::Displayer::Maxy, Laxkit::Displayer::Minx, Laxkit::Displayer::Miny, Laxkit::PtrStack< T >::n, LaxInterfaces::anInterface::needtodraw, Laxkit::Displayer::NewFG(), norm(), Laxkit::Displayer::PopAxes(), Laxkit::Displayer::PushAndNewTransform(), Laxkit::Displayer::realtoscreen(), Laxkit::Displayer::textextent(), Laxkit::Displayer::textout(), LaxInterfaces::CaptionData::xcentering, and LaxInterfaces::CaptionData::ycentering.
Referenced by DrawData().
| 
 | protected | 
If mode==0, then edit existing text normally. If mode==1, then we are working on a brand new object. If the interface is called off without actually writing any text, then do not install the object.
Referenced by InterfaceOn(), LBDown(), and LBUp().