当前位置: 首页 > article >正文

FLTK - FLTK1.4.1 - demo - bitmap

文章目录

    • 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();
}

END


http://www.kler.cn/a/529252.html

相关文章:

  • happytime
  • 【教程】在CMT上注册账号并声明Conflicts
  • 写好简历的三个关键认知
  • 51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)
  • 基于PLC的变频调速系统设计
  • RK3568使用QT操作LED灯
  • Redis脑裂问题详解及解决方案
  • 十分钟快速上手 markdown
  • DRM系列四:初始化drm设备--drm_dev_init
  • Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell基本运算符】
  • 深度学习之“向量范数和距离度量”
  • 【VMware】VMware安装ubuntu-22.04虚拟机
  • 一觉醒来全球编码能力下降100000倍,新手小白的我决定科普C语言——函数
  • Clock Controller of RH850/F1KH-D8, RH850/F1KM-S4, RH850/F1KM-S2
  • 15JavaWeb——Maven高级篇
  • 深入剖析 HTML5 新特性:语义化标签和表单控件完全指南
  • 78-《磨盘草》
  • 代码随想录算法训练营第四十一天-动态规划-股票-123.买卖股票的最佳时机III
  • 帝国CMS8.0终极栏目转换或批量改顺序成功后不能返回地址的解决方案
  • Linux 基础2
  • Java线程池与Future_优化并发任务执行
  • DeepSeek-R1论文研读:通过强化学习激励LLM中的推理能力
  • Unity安装教学与相关问题
  • 蓝桥杯python基础算法(2-2)——基础算法(A)——枚举
  • Python 梯度下降法(六):Nadam Optimize
  • yes镜像站群/PHP驱动的镜像站群架构实践