117 lines
3.8 KiB
C
Executable File
117 lines
3.8 KiB
C
Executable File
/** \file
|
|
* \brief Scintilla control: Annotation
|
|
*
|
|
* See Copyright Notice in "iup.h"
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
|
|
#include <Scintilla.h>
|
|
|
|
#include "iup.h"
|
|
|
|
#include "iup_object.h"
|
|
#include "iup_attrib.h"
|
|
#include "iup_str.h"
|
|
|
|
#include "iupsci.h"
|
|
|
|
|
|
/***** Annotation *****
|
|
SCI_ANNOTATIONSETTEXT(int line, char *text)
|
|
SCI_ANNOTATIONGETTEXT(int line, char *text)
|
|
SCI_ANNOTATIONSETSTYLE(int line, int style)
|
|
SCI_ANNOTATIONGETSTYLE(int line)
|
|
-- SCI_ANNOTATIONSETSTYLES(int line, char *styles)
|
|
-- SCI_ANNOTATIONGETSTYLES(int line, char *styles)
|
|
-- SCI_ANNOTATIONGETLINES(int line)
|
|
SCI_ANNOTATIONCLEARALL
|
|
SCI_ANNOTATIONSETVISIBLE(int visible)
|
|
SCI_ANNOTATIONGETVISIBLE
|
|
SCI_ANNOTATIONSETSTYLEOFFSET(int style)
|
|
SCI_ANNOTATIONGETSTYLEOFFSET
|
|
*/
|
|
|
|
static int iScintillaSetAnnotationTextAttribId(Ihandle* ih, int line, const char* value)
|
|
{
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETTEXT, line, (sptr_t)value);
|
|
return 0;
|
|
}
|
|
|
|
static char* iScintillaGetAnnotationTextAttribId(Ihandle* ih, int line)
|
|
{
|
|
int len = (int)IupScintillaSendMessage(ih, SCI_ANNOTATIONGETTEXT, line, 0);
|
|
char* str = iupStrGetMemory(len+1);
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONGETTEXT, line, (sptr_t)str);
|
|
return str;
|
|
}
|
|
|
|
static int iScintillaSetAnnotationStyleAttribId(Ihandle* ih, int line, const char* value)
|
|
{
|
|
int style;
|
|
iupStrToInt(value, &style);
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETSTYLE, line, style);
|
|
return 0;
|
|
}
|
|
|
|
static char* iScintillaGetAnnotationStyleAttribId(Ihandle* ih, int line)
|
|
{
|
|
int style = (int)IupScintillaSendMessage(ih, SCI_ANNOTATIONGETSTYLE, line, 0);
|
|
return iupStrReturnInt(style);
|
|
}
|
|
|
|
static int iScintillaSetAnnotationStyleOffsetAttrib(Ihandle* ih, const char* value)
|
|
{
|
|
int style_offset;
|
|
iupStrToInt(value, &style_offset);
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETSTYLEOFFSET, style_offset, 0);
|
|
return 0;
|
|
}
|
|
|
|
static char* iScintillaGetAnnotationStyleOffsetAttrib(Ihandle* ih)
|
|
{
|
|
int style = (int)IupScintillaSendMessage(ih, SCI_ANNOTATIONGETSTYLEOFFSET, 0, 0);
|
|
return iupStrReturnInt(style);
|
|
}
|
|
|
|
static int iScintillaSetAnnotationVisibleAttrib(Ihandle *ih, const char *value)
|
|
{
|
|
if (iupStrEqualNoCase(value, "STANDARD"))
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETVISIBLE, ANNOTATION_STANDARD, 0);
|
|
else if (iupStrEqualNoCase(value, "BOXED"))
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETVISIBLE, ANNOTATION_BOXED, 0);
|
|
else /* "HIDDEN" */
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONSETVISIBLE, ANNOTATION_HIDDEN, 0);
|
|
return 0;
|
|
}
|
|
|
|
static char* iScintillaGetAnnotationVisibleAttrib(Ihandle* ih)
|
|
{
|
|
if (IupScintillaSendMessage(ih, SCI_ANNOTATIONGETVISIBLE, 0, 0) == ANNOTATION_STANDARD)
|
|
return "STANDARD";
|
|
else if (IupScintillaSendMessage(ih, SCI_ANNOTATIONGETVISIBLE, 0, 0) == ANNOTATION_BOXED)
|
|
return "BOXED";
|
|
else /* ANNOTATION_HIDDEN */
|
|
return "HIDDEN";
|
|
}
|
|
|
|
static int iScintillaSetAnnotationClearAllAttrib(Ihandle* ih, const char* value)
|
|
{
|
|
(void)value;
|
|
IupScintillaSendMessage(ih, SCI_ANNOTATIONCLEARALL, 0, 0);
|
|
return 0;
|
|
}
|
|
|
|
void iupScintillaRegisterAnnotation(Iclass* ic)
|
|
{
|
|
iupClassRegisterAttributeId(ic, "ANNOTATIONTEXT", iScintillaGetAnnotationTextAttribId, iScintillaSetAnnotationTextAttribId, IUPAF_NO_INHERIT);
|
|
iupClassRegisterAttributeId(ic, "ANNOTATIONSTYLE", iScintillaGetAnnotationStyleAttribId, iScintillaSetAnnotationStyleAttribId, IUPAF_NO_INHERIT);
|
|
iupClassRegisterAttribute(ic, "ANNOTATIONSTYLEOFFSET", iScintillaGetAnnotationStyleOffsetAttrib, iScintillaSetAnnotationStyleOffsetAttrib, NULL, NULL, IUPAF_NO_INHERIT);
|
|
iupClassRegisterAttribute(ic, "ANNOTATIONVISIBLE", iScintillaGetAnnotationVisibleAttrib, iScintillaSetAnnotationVisibleAttrib, IUPAF_SAMEASSYSTEM, "HIDDEN", IUPAF_NO_INHERIT);
|
|
iupClassRegisterAttribute(ic, "ANNOTATIONCLEARALL", NULL, iScintillaSetAnnotationClearAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
|
|
}
|