Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОУК / 09 семестр / Книги и методические указания / Руководство программиста в Photon.doc
Источник:
Скачиваний:
364
Добавлен:
04.03.2014
Размер:
7.99 Mб
Скачать

Ресурсы scalar и flag (указательный метод)

Если Вы получаете скалярный ресурс или ресурс флага, используя метод указателя:

  • Аргумент value в PtSetArg() является адресом указателя на соответствующий тип языка С.

  • len не используется.

Когда вызывается функция PtGetResources(), указатель для этого ресурса устанавливается указывающим на внутреннее хранилище виджета.

Вот некоторые функции, которые получают ресурс scalar или flag, используя метод указателя:

unsigned long getlong( PtWidget_t *widget, long type ) {

/* Получение long или long флагов */

PtArg_t arg; unsigned long const *result;

PtSetArg( &arg, type, &result, 0 );

PtGetResources( widget, 1, &arg );

return *result;

}

unsigned getshort( PtWidget_t *widget, long type ) {

/* Получение short или short флагов */

PtArg_t arg; unsigned short const *result;

PtSetArg( &arg, type, &result, 0 );

PtGetResources( widget, 1, &arg );

return *result;

}

unsigned getbyte( PtWidget_t *widget, long type ) {

/* Получение char или char флагов */

PtArg_t arg; unsigned char const *result;

PtSetArg( &arg, type, &result, 0 );

PtGetResources( widget, 1, &arg );

return *result;

}

Ресурсы string (указательный метод)

Если Вы получаете строковые ресурсы, используя метод указателя:

  • Аргумент value в PtSetArg() является адресом указателя на char

  • len не используется.

Когда вызывается PtGetResources(), задаваемый указатель для строкового ресурса устанавливается указывающим на внутреннее хранилище виджета. Например:

const char *getstr1( PtWidget_t *widget, long type ) {

PtArg_t arg; const char *str;

PtSetArg( &arg, type, &str, 0 );

PtGetResources( widget, 1, &arg );

return str;

}

Ресурсы alloc (указательный метод)

Если Вы получаете ресурс размещения, используя метод указателя:

  • Аргумент value в PtSetArg() является адресом соответствующего типа (тип определяется по данным, отдаваемым виджету при его установке)

  • len не используется.

Когда вызывается PtGetResources(), задаваемый указатель устанавливается указывающим на внутренние данные виджета.

Ресурсы image (указательный метод)

Если Вы получаете ресурсы образа, используя метод указателя:

  • Аргумент value в PtSetArg() является адресом указателя на структуру типа PhImage_t

  • len не используется.

Когда вызывается PtGetResources(), задаваемый указатель устанавливается указывающим на внутренние данные виджета.

Ресурсы array (указательный метод)

Если Вы получаете ресурсы массива, используя метод указателя:

  • Аргумент value в PtSetArg() является адресом указателя соответствующего типа языка С (первый из двух типов языка С, данный в таблице "Новые ресурсы").

  • len является адресом указателя на данный второй тип языка С.

Когда вызывается PtGetResources():

  • Указатель, задаваемый в value, устанавливается указывающим на начало массива во внутреннем хранилище виджета.

  • Указатель, задаваемый в len, устанавливается указывающим на счётчик элементов массива во внутреннем хранилище виджета.

Ресурсы pointer (указательный метод)

Если Вы получаете ресурсы указателя, используя метод указателя:

  • Аргумент value в PtGetArg() является адресом указателя соответствующего типа языка С.

  • len не используется.

Когда вызывается PtGetResources(), задаваемый указатель устанавливается указывающим на те же данные, что и внутренний указатель виджета. Данные являются внешними по отношению к виджету; Вы можете модифицировать их в зависимости от ресурса.