Comments (4)
Hey @mikeymike thanks! setPaddingLeftRight() works fine!
from cli-menu.
Hey @zhdanov, thanks for the report.
Could you supply an example that shows how you're using this?
We have some code examples in the src, examples/basic-centered.php
is one which alters the width which I've played with to also alter colour etc like above but I couldn't recreate a scenario which didn't alter the width.
Thanks!
from cli-menu.
Hey @mikeymike , sure:
<?php
require __DIR__.'/vendor/autoload.php';
use PhpSchool\CliMenu\Builder\CliMenuBuilder;
use PhpSchool\CliMenu\CliMenu;
use PhpSchool\CliMenu\MenuStyle;
$builder = new CliMenuBuilder;
$itemCallable = function ($menu) {
$style = (new MenuStyle())->setWidth(200)->setBg('black')->setFg('white');
$result = $menu->askText($style)
->setPromptText('Title')
->setPlaceholderText('Placeholder')
->ask();
};
$builder->addSubMenu('Item 1', function (CliMenuBuilder $b) use ($itemCallable) {
$b->setTitle('Menu > Item 1');
$b->addItem('Sub item', function (CliMenu $menu) use ($itemCallable) {
$itemCallable($menu);
});
});
$menu = $builder->build();
$menu->open();
from cli-menu.
Hey @zhdanov I've had a quick look over this and you're totally right the dialogues don't currently utilise the width set by the style. Instead, these are calculated dynamically based on the parents width, the dialogues content and the dialogue padding styles.
Using setPaddingLeftRight
instead of setWidth
may be a suitable solution to your problem. I'm going to keep this issue open though as we may want to use width if it's been specifically set and then fallback to dynamic if it's not set.
Thanks again for the report!
from cli-menu.
Related Issues (20)
- struggling to re-generate sub-menu dynamically HOT 6
- Custom and auto mappings can't override default HOT 18
- Menu Dialog HOT 12
- Menu blink because deprecated warning. HOT 4
- Terminal overflow and menu size HOT 2
- Checked checkbox HOT 3
- Windows compatibility: replace posix_isatty() with stream_isatty() HOT 5
- Menu items and cp1251 HOT 3
- setPromptText - multiline support HOT 5
- PHPStorm - How to debug HOT 3
- PHPUnit problem if first item is not a SelectableItem which calls ->close() HOT 2
- askText() requires two presses of enter and cuts the line (during copy/paste) HOT 1
- Pressing backspace in an empty text input crashes the menu system HOT 8
- Missing import HOT 3
- Replace ctype_digit with is_numeric ? HOT 2
- Feature request - ability to add sub-menu from addItem's callable HOT 9
- How do I capture CTRL+C event? HOT 2
- preserving selection index as you move up/down
- Feature: present menu "inline"; without clearing terminal screen HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cli-menu.