文章目录
- FLTK - FLTK1.4.1 - demo - bitmap
- 概述
- 笔记
- END
FLTK - FLTK1.4.1 - demo - bitmap
概述
// 功能 : 演示位图数据在按钮上的显示
// * 以按钮为范围或者以窗口为范围移动
// * 上下左右, 文字和图像的相对位置
// 失能按钮,使能按钮
// 知识点
// FLTK可以载入数组中的位图数据到图片控件
// 按钮可以是位图按钮了,由自己载入的位图数据来决定按钮好看不好看
// FLTK是C风格的,用起来,到处都是全局变量和静态变量, 真粗暴。
笔记
// FLTK - FLTK1.4.1 - demo - bitmap
// 功能 : 演示位图数据在按钮上的显示
// * 以按钮为范围或者以窗口为范围移动
// * 上下左右, 文字和图像的相对位置
// 失能按钮,使能按钮
// 知识点
// FLTK可以载入数组中的位图数据到图片控件
// 按钮可以是位图按钮了,由自己载入的位图数据来决定按钮好看不好看
// FLTK是C风格的,用起来,到处都是全局变量和静态变量, 真粗暴。
#include "fltk_test.h"
// 如果要将fl demo的实现搬过来测试,就注释掉下面的宏
// #define DONT_USE_FL_DEMO
#ifdef DONT_USE_FL_DEMO
int fl_demo_main(int argc, char** argv)
{
return 0;
}
#else
#endif // TEST_FL_DEMO
//
// Bitmap label test program for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2021 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
// file is missing or damaged, see the license at:
//
// https://www.fltk.org/COPYING.php
//
// Please see the following page on how to report bugs and issues:
//
// https://www.fltk.org/bugs.php
//
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Bitmap.H>
#include <FL/Fl_Toggle_Button.H>
#include <stdio.h>
// include bitmap
// #include "pixmaps/sorceress.xbm"
#include "./fltk_test/sorceress.xbm"
Fl_Toggle_Button* leftb, * rightb, * topb, * bottomb, * insideb, * overb, * inactb;
Fl_Button* b;
Fl_Double_Window* w;
void button_cb(Fl_Widget*, void*) {
int i = 0;
if (leftb->value()) i |= FL_ALIGN_LEFT;
if (rightb->value()) i |= FL_ALIGN_RIGHT;
if (topb->value()) i |= FL_ALIGN_TOP;
if (bottomb->value()) i |= FL_ALIGN_BOTTOM;
if (insideb->value()) i |= FL_ALIGN_INSIDE;
if (overb->value()) i |= FL_ALIGN_TEXT_OVER_IMAGE;
b->align(i);
if (inactb->value()) b->deactivate();
else b->activate();
w->redraw();
}
int fl_demo_main(int argc, char** argv) {
w = new Fl_Double_Window(400, 400);
b = new Fl_Button(140, 160, 120, 120, "Bitmap");
b->image(new Fl_Bitmap(sorceress_bits, sorceress_width, sorceress_height));
leftb = new Fl_Toggle_Button(25, 50, 50, 25, "left");
leftb->callback(button_cb);
rightb = new Fl_Toggle_Button(75, 50, 50, 25, "right");
rightb->callback(button_cb);
topb = new Fl_Toggle_Button(125, 50, 50, 25, "top");
topb->callback(button_cb);
bottomb = new Fl_Toggle_Button(175, 50, 50, 25, "bottom");
bottomb->callback(button_cb);
insideb = new Fl_Toggle_Button(225, 50, 50, 25, "inside");
insideb->callback(button_cb);
overb = new Fl_Toggle_Button(25, 75, 100, 25, "text over");
overb->callback(button_cb);
inactb = new Fl_Toggle_Button(125, 75, 100, 25, "inactive");
inactb->callback(button_cb);
w->resizable(w);
w->end();
w->show(argc, argv);
return Fl::run();
}