Нерабочие символы в исходном коде коврика для мыши xfce

Извините, я новичок. Я пытаюсь научиться читать очень простой текстовый редактор для xfce4: коврик для мыши. Но в нем я вижу два разбитых символа mousepad_window_get_type и mousepad_application_get_type

/home/utente/Desktop/mousepad-master/mousepad/mousepad-window.h:
   22  G_BEGIN_DECLS
   23  
   24: #define MOUSEPAD_TYPE_WINDOW            (mousepad_window_get_type ())
   25  #define MOUSEPAD_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_WINDOW, MousepadWindow))
   26  #define MOUSEPAD_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_WINDOW, MousepadWindowClass))
   ..
   44  typedef struct _MousepadWindow      MousepadWindow;
   45  
   46: GType           mousepad_window_get_type         (void) G_GNUC_CONST;
   47  
   48  GtkWidget      *mousepad_window_new              (void);



/home/utente/Desktop/mousepad-master/mousepad/mousepad-application.h:
   25  typedef struct _MousepadApplication      MousepadApplication;
   26  
   27: #define MOUSEPAD_TYPE_APPLICATION            (mousepad_application_get_type ())
   28  #define MOUSEPAD_APPLICATION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplication))
   29  #define MOUSEPAD_APPLICATION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass))
   ..
   32  #define MOUSEPAD_APPLICATION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass))
   33  
   34: GType                mousepad_application_get_type               (void) G_GNUC_CONST;
   35  
   36  MousepadApplication *mousepad_application_get                    (void);

2 ответа

Функции *_get_type определяются макросом G_DEFINE_TYPE. Они также могут быть объявлены G_DECLARE_FINAL_TYPE или G_DECLARE_DERIVABLE_TYPE, но это не относится к коврику для мыши.

Проекты Xfce написаны на GTK+, поэтому вам нужно сначала изучить его, иначе некоторые части кода будут сбивать с толку. Вы можете найти множество учебных пособий для GTK+/GObject/GLib, и их документация (надеюсь) является исчерпывающей. Платформа разработки GLib/GTK+ - отличное начало для начинающих.

Эти символы, вероятно, определены в других заголовочных файлах проекта. Сделать $ grep -nr mousepad_window_get_type . в каталоге вашего проекта. Это покажет вам все доступные использования слова mousepad_window_get_type. Однако вы, скорее всего, не найдете эти символы, определенные где-либо в проекте, так как я подозреваю, что они являются функциями, которые доступны в одной из библиотек, на которые вы ссылаетесь при компиляции вашего проекта.

Другие вопросы по тегам