aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.c17
-rw-r--r--ui.c16
2 files changed, 32 insertions, 1 deletions
diff --git a/main.c b/main.c
index ba69ec7..2750a06 100644
--- a/main.c
+++ b/main.c
@@ -73,6 +73,7 @@ static void volume_flow_rate_row(mu_Context *ctx, UI *ui);
static void mass_flow_rate_row(mu_Context *ctx, UI *ui);
static void mass_flow_rate_corrected_row(mu_Context *ctx, UI *ui);
static void comp_select(mu_Context *ctx, UI *ui);
+static void comp_img(mu_Context *ctx);
static void output_row(mu_Context *ctx, UI *ui, const char *label, w_Select *unit, w_Number outputs[]);
static void hpad(mu_Context *ctx, int w);
static void vpad(mu_Context *ctx, int h);
@@ -172,6 +173,8 @@ main_window(mu_Context *ctx, UI *ui) {
comp_select(ctx, ui);
+ comp_img(ctx);
+
mu_end_window(ctx);
}
@@ -392,6 +395,20 @@ comp_select(mu_Context *ctx, UI *ui) {
}
static void
+comp_img(mu_Context *ctx) {
+ mu_Rect r;
+ int w, h;
+
+ mu_layout_row(ctx, 1, (int[]) {-1}, -1);
+ r = mu_layout_next(ctx);
+ r_get_window_size(&w, &h);
+ r.w = w - r.x;
+ r.h = h - r.y;
+ mu_layout_set_next(ctx, r, 0);
+ mu_draw_icon(ctx, 0, r, (mu_Color) {0, 0, 0, 0});
+}
+
+static void
output_row(mu_Context *ctx, UI *ui, const char *label, w_Select *unit, w_Number outputs[]) {
int i;
diff --git a/ui.c b/ui.c
index 9dfbf87..3393d65 100644
--- a/ui.c
+++ b/ui.c
@@ -5,6 +5,7 @@
#include <string.h>
#include "microui.h"
+#include "renderer.h"
#include "unit.h"
#include "compressor.h"
#include "widget.h"
@@ -40,6 +41,7 @@ static void init_volume_flow_rate(UI *ui);
static void init_mass_flow_rate(UI *ui);
static void init_mass_flow_rate_corrected(UI *ui);
static int init_comps(UI *ui);
+static int init_comp_img(UI *ui);
static void compute_pressure_ratio(UI *ui, int idx);
static void compute_comp_outlet_temperature(UI *ui, int idx);
static void compute_manifold_temperature(UI *ui, int idx);
@@ -48,7 +50,7 @@ static void compute_mass_flow_rate(UI *ui, int idx);
static void compute_mass_flow_rate_corrected(UI *ui, int idx);
-/* Returns non-zero on error. */
+/* Returns non-zero on error. The renderer must already be initialized. */
int
init_ui(UI *ui) {
ui->npoints = 1;
@@ -76,6 +78,11 @@ init_ui(UI *ui) {
return 1;
}
+ if (init_comp_img(ui) != 0) {
+ free_ui(ui);
+ return 1;
+ }
+
compute(ui, 0);
return 0;
@@ -244,6 +251,13 @@ init_comps(UI *ui) {
return 0;
}
+static int
+init_comp_img(UI *ui) {
+ const Compressor *comp;
+ comp = &ui->comps[ui->comp_select.idx];
+ return r_push_icon(comp->imgfile);
+}
+
void
set_displacement(UI *ui) {
int idx, i;