packages feed

fltkhs-0.4.0.6: c-src/Fl_CallbackC.h

#ifndef __FL_CALLBACK_C__
#define __FL_CALLBACK_C__

#ifdef __cplusplus
#include "Fl_ExportMacros.h"
#include "Fl_Types.h"
#include "DerivedText_Editor.h"
#include <FL/Fl.H>
#include "FL/Fl_Window.H"
#include <FL/Fl_Widget.H>
#include <FL/Fl_Menu_Item.H>
#include <FL/Fl_Menu_.H>
#include <FL/Fl_Sys_Menu_Bar.H>
#include <FL/Fl_Text_Buffer.H>
#include <FL/Fl_Text_Editor.H>
#include <FL/Fl_File_Chooser.H>
#include <stdio.h>
/**
  Pass a C callback function to an Fl_Window
*/
class C_to_Fl_Callback {
 private:
  fl_Callback* callback;
  fl_Text_Buffer_Callback* text_buffer_callback;
  fl_Key_Func* c_key_func;
  Fl_Text_Editor::Key_Func* cpp_key_func;
  void* user_data;
  void runCallback(Fl_Widget* w);
  void runCallback();
  int runCallback(int key, DerivedText_Editor* editor);
  void runCallback(Fl_File_Chooser* chooser);
  static void intercept(Fl_Widget* w, void* self) {
    ((C_to_Fl_Callback*)self)->runCallback(w);
  }
  static void intercept(Fl_Text_Buffer* self) {
    ((C_to_Fl_Callback*)self)->runCallback();
  }
  static void intercept(Fl_File_Chooser* c, void* self){
    ((C_to_Fl_Callback*)self)->runCallback(c);
  }
  // implementation needs DerivedText_Editor so it is separated
 public:
  static int intercept(int key, DerivedText_Editor* editor){
    C_to_Fl_Callback* context = editor->get_curr_callback_context();
    if (!context) context = editor->get_default_callback_context();
    return context->runCallback(key,editor);
  };
  static int intercept(int key, fl_Text_Editor editor);
  C_to_Fl_Callback(Fl_Widget* invoker, fl_Callback* callback, void* user_data);
  C_to_Fl_Callback(Fl_Widget* invoker, fl_Callback* callback);
  C_to_Fl_Callback(fl_Callback* callback);
  C_to_Fl_Callback(fl_Callback* callback, void* user_data);
  C_to_Fl_Callback(fl_Text_Buffer_Callback* callback, void* invoker);
  C_to_Fl_Callback(fl_Key_Func* key_func);
  C_to_Fl_Callback(Fl_Text_Editor::Key_Func* stored_key_func);
  C_to_Fl_Callback(Fl_File_Chooser* chooser, void* user_data);
  C_to_Fl_Callback(Fl_File_Chooser* chooser);
  void* get_user_data();
  void set_callback(Fl_Menu_Item* item);
  void set_callback(Fl_Text_Buffer* b);
  void set_user_data(void* user_data);
  void set_callback(Fl_File_Chooser* b);
  int menu_insert(Fl_Menu_Item* item, int index, char* name, int shortcut, int flags = 0);
  int menu_insert(Fl_Menu_* menu_, int index, char* name, int shortcut, int flags = 0);
  int menu_insert(Fl_Menu_* menu_, int index, char* name, char* shortcut, int flags = 0);
  int menu_insert(Fl_Sys_Menu_Bar* menu_, int index, char* name, int shortcut, int flags = 0);
  int menu_insert(Fl_Sys_Menu_Bar* menu_, int index, char* name, char* shortcut, int flags = 0);
  int menu_add(Fl_Menu_Item* item, char* name, int shortcut, int flags = 0);
  int menu_add(Fl_Menu_Item* item, char* name, char* shortcut, int flags = 0);
  int menu_add(Fl_Menu_* menu,char* name, char* shortcut, int flags = 0);
  int menu_add(Fl_Menu_* menu,char* name, int shortcut, int flags = 0);
  int menu_add(Fl_Sys_Menu_Bar* menu,char* name, char* shortcut, int flags = 0);
  int menu_add(Fl_Sys_Menu_Bar* menu,char* name, int shortcut, int flags = 0);
};
#endif
#endif /* __FL_CALLBACK_C__ */