LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета. Название полей у nk_context могу путать, но это стандартный функционал.


Если это отдельный элемент темизируемый, то тоже просто:

void draw_themed_label(nk_context *ctx, const char *text) {
  Theme *theme = ((Application)ctx->user_data)->theme;
  nk_label_colored(ctx, text, theme->themed_label_color);
}
И потом вместо nk_label() используешь просто draw_themed_label()

Аналог в ООП:

class ThemedLabel : public Label {
  constructor () {
    auto theme = Application.getInstance().getTheme()
    self.set_color(theme.getThemedLabelColor())
  }
} 
А дальше так же, вместо Label нужно использовать ThemedLabel.

Исправление MOPKOBKA, :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета. Название полей у nk_context могу путать, но это стандартный функционал.


Если это отдельный элемент темизируемый, то тоже просто:

void draw_themed_label(nk_context *ctx, const char *text) {
  Theme *theme = ((Application)ctx->user_data)->theme;
  nk_label_colored(ctx, text, theme->themed_label_color);
}
И потом вместо nk_label() используешь просто draw_themed_label()

Аналог в ООП:

class ThemedLabel : public Label {
  constructor () {
    auto theme = Application.getInstance().getTheme()
    self.set_color(theme.getThemedLabelColor())
  }
} 

Исправление MOPKOBKA, :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета. Название полей у nk_context могу путать, но это стандартный функционал.


Если это отдельный элемент темизируемый, то тоже просто:

void draw_themed_label(nk_context *ctx, const char *text) {
  Theme *theme = ((Application)ctx->user_data)->theme;
  nk_label_colored(ctx, text, theme->themed_label_color);
}
И потом вместо nk_label() используешь просто draw_themed_label()

Исправление MOPKOBKA, :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета. Название полей у nk_context могу путать, но это стандартный функционал.

Исправление MOPKOBKA, :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета. Название полей у nk_context могу путать.

Исходная версия MOPKOBKA, :

Ну почему же просто так. Пользователь может задавать его в .conf, например.

Это уже тема приложения, или типо того? Тогда где то в main запускаешь следующую функцию.

void theming(nk_context *ctx, theme *theme) {
  ctx->defaults.label.color = theme->label_color;
  ...
}
И весь текст по умолчанию будет нужного цвета.